Skip to content

Commit 81343f1

Browse files
committed
🧪 Added more tests
1 parent 535ac2a commit 81343f1

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
@@ -104,6 +104,33 @@ final class EmbeddedManagerTests: XCTestCase {
104104

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

108135
func testManagerReset() {
109136
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)