Skip to content

Commit 45c25e2

Browse files
committed
🧪 Added more tests
1 parent cb31277 commit 45c25e2

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed

tests/unit-tests/EmbeddedManagerTests.swift

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,33 @@ final class EmbeddedManagerTests: XCTestCase {
109109

110110
wait(for: [syncMessagesExpectation, delegateExpectation, syncSuccessExpectation], timeout: 2)
111111
}
112+
113+
func testSyncMessagesWithPlacementIdsDoesNotClearOtherPlacements() {
114+
let mockApiClient = MockApiClient()
115+
mockApiClient.populateMessages([
116+
1: [IterableEmbeddedMessage(messageId: "1a", placementId: 1)],
117+
2: [IterableEmbeddedMessage(messageId: "2a", placementId: 2)],
118+
])
119+
120+
let manager = IterableEmbeddedManager(apiClient: mockApiClient,
121+
urlDelegate: nil,
122+
customActionDelegate: nil,
123+
urlOpener: MockUrlOpener(),
124+
allowedProtocols: [],
125+
enableEmbeddedMessaging: true)
126+
127+
manager.syncMessages { }
128+
XCTAssertEqual(manager.getMessages(for: 2).map { $0.metadata.messageId }, ["2a"])
129+
130+
// Update only placement 1 on the "server", then request only that placement.
131+
mockApiClient.populateMessages([
132+
1: [IterableEmbeddedMessage(messageId: "1b", placementId: 1)],
133+
])
134+
manager.syncMessages(placementIds: [1]) { }
135+
136+
XCTAssertEqual(manager.getMessages(for: 1).map { $0.metadata.messageId }, ["1b"])
137+
XCTAssertEqual(manager.getMessages(for: 2).map { $0.metadata.messageId }, ["2a"])
138+
}
112139

113140
func testManagerReset() {
114141
let syncMessagesExpectation = expectation(description: "syncMessages should complete")

tests/unit-tests/RequestCreatorTests.swift

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,51 @@ class RequestCreatorTests: XCTestCase {
177177
XCTAssertEqual(args[JsonKey.InApp.count], inAppMessageRequestCount.stringValue)
178178
XCTAssertEqual(args[JsonKey.systemVersion], UIDevice.current.systemVersion)
179179
}
180+
181+
func testGetEmbeddedMessagesRequestFailure() {
182+
let auth = Auth(userId: nil, email: nil, authToken: nil, userIdUnknownUser: nil)
183+
let requestCreator = RequestCreator(auth: auth, deviceMetadata: deviceMetadata)
184+
185+
let failingRequest = requestCreator.createGetEmbeddedMessagesRequest(placementIds: nil)
186+
187+
if let _ = try? failingRequest.get() {
188+
XCTFail("request succeeded despite userId and email being nil")
189+
}
190+
}
191+
192+
func testGetEmbeddedMessagesRequest() {
193+
let request = createRequestCreator().createGetEmbeddedMessagesRequest(placementIds: nil)
194+
let urlRequest = convertToUrlRequest(request)
195+
196+
TestUtils.validateHeader(urlRequest, apiKey)
197+
TestUtils.validate(request: urlRequest, requestType: .get, apiEndPoint: Endpoint.api, path: Const.Path.getEmbeddedMessages)
198+
199+
guard case let .success(.get(getRequest)) = request, let args = getRequest.args else {
200+
XCTFail("could not unwrap to a get request and its arguments")
201+
return
202+
}
203+
204+
XCTAssertEqual(args[JsonKey.email], auth.email)
205+
XCTAssertEqual(args[JsonKey.Embedded.packageName], Bundle.main.appPackageName)
206+
XCTAssertEqual(args[JsonKey.systemVersion], UIDevice.current.systemVersion)
207+
XCTAssertNil(args[JsonKey.Embedded.placementIds])
208+
}
209+
210+
func testGetEmbeddedMessagesRequestWithPlacementIds() {
211+
let request = createRequestCreator().createGetEmbeddedMessagesRequest(placementIds: [1, 2, 3])
212+
let urlRequest = convertToUrlRequest(request)
213+
214+
TestUtils.validateHeader(urlRequest, apiKey)
215+
TestUtils.validate(request: urlRequest, requestType: .get, apiEndPoint: Endpoint.api, path: Const.Path.getEmbeddedMessages)
216+
217+
guard case let .success(.get(getRequest)) = request, let args = getRequest.args else {
218+
XCTFail("could not unwrap to a get request and its arguments")
219+
return
220+
}
221+
222+
XCTAssertEqual(args[JsonKey.email], auth.email)
223+
XCTAssertEqual(args[JsonKey.Embedded.placementIds], "1,2,3")
224+
}
180225

181226
func testTrackEventRequest() {
182227
let eventName = "dsfsdf"

0 commit comments

Comments
 (0)