Skip to content

Commit 5df8c39

Browse files
authored
Merge pull request #670 from Iterable/anelson/embedded-tests
[MOB-6632] [MOB-6633] [MOB-6634] [MOB-6636] Add Iterable embedded manager unit tests
2 parents ae07c49 + de60053 commit 5df8c39

8 files changed

+350
-113
lines changed

swift-sdk.xcodeproj/project.pbxproj

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
00B6FACE210E88ED007535CF /* prod-1.mobileprovision in Resources */ = {isa = PBXBuildFile; fileRef = 00B6FACD210E874D007535CF /* prod-1.mobileprovision */; };
1212
00B6FAD1210E8D90007535CF /* dev-1.mobileprovision in Resources */ = {isa = PBXBuildFile; fileRef = 00B6FAD0210E8D90007535CF /* dev-1.mobileprovision */; };
1313
00CB31B621096129004ACDEC /* TestUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00CB31B4210960C4004ACDEC /* TestUtils.swift */; };
14+
1CBFFE1A2A97AEEF00ED57EE /* EmbeddedManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CBFFE162A97AEEE00ED57EE /* EmbeddedManagerTests.swift */; };
15+
1CBFFE1B2A97AEEF00ED57EE /* EmbeddedMessagingProcessorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CBFFE172A97AEEE00ED57EE /* EmbeddedMessagingProcessorTests.swift */; };
16+
1CBFFE1C2A97AEEF00ED57EE /* EmbeddedSessionManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CBFFE182A97AEEE00ED57EE /* EmbeddedSessionManagerTests.swift */; };
17+
1CBFFE1D2A97AEEF00ED57EE /* EmbeddedMessagingSerializationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CBFFE192A97AEEF00ED57EE /* EmbeddedMessagingSerializationTests.swift */; };
1418
1CCA91202A27FA8700AEA213 /* MiscEmbeddedClasses.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CCA911F2A27FA8700AEA213 /* MiscEmbeddedClasses.swift */; };
1519
1CCA91222A28075A00AEA213 /* EmbeddedSessionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1CCA91212A28075A00AEA213 /* EmbeddedSessionManager.swift */; };
1620
55023E9C29132881003F69DC /* IterableEmbeddedMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55023E9B29132881003F69DC /* IterableEmbeddedMessage.swift */; };
@@ -22,11 +26,9 @@
2226
5531CDAC22A997A4000D05E2 /* IterableInboxViewControllerUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5585DF9022A877E6000A32B9 /* IterableInboxViewControllerUITests.swift */; };
2327
5531CDAE22A9C992000D05E2 /* ClassExtensionsTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5531CDAD22A9C992000D05E2 /* ClassExtensionsTests.swift */; };
2428
553449A129C2621E002E4599 /* EmbeddedMessagingProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 553449A029C2621E002E4599 /* EmbeddedMessagingProcessor.swift */; };
25-
553449A329C26A95002E4599 /* EmbeddedMessagingProcessorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 553449A229C26A95002E4599 /* EmbeddedMessagingProcessorTests.swift */; };
2629
5536781F2576FF9000DB3652 /* IterableUtilTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5536781E2576FF9000DB3652 /* IterableUtilTests.swift */; };
2730
5555425028BED1B400DB5D20 /* KeychainWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5555424F28BED1B400DB5D20 /* KeychainWrapper.swift */; };
2831
55684312298C6A9F006A5EB4 /* EmbeddedMessagingSerialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55684311298C6A9F006A5EB4 /* EmbeddedMessagingSerialization.swift */; };
29-
55684319298C8052006A5EB4 /* EmbeddedManagerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55684318298C8052006A5EB4 /* EmbeddedManagerTests.swift */; };
3032
556FB1EA244FAF6A00EDF6BD /* InAppPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 556FB1E9244FAF6A00EDF6BD /* InAppPresenter.swift */; };
3133
557AE6BF24A56E5E00B57750 /* Auth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 557AE6BE24A56E5E00B57750 /* Auth.swift */; };
3234
5585DF8F22A73390000A32B9 /* IterableInboxViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5585DF8E22A73390000A32B9 /* IterableInboxViewControllerTests.swift */; };
@@ -162,7 +164,6 @@
162164
55B549862397462300243E87 /* InboxImpressionTrackerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B549852397462300243E87 /* InboxImpressionTrackerTests.swift */; };
163165
55B9F15124B3D33700E8198A /* AuthTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B9F15024B3D33700E8198A /* AuthTests.swift */; };
164166
55B9F15324B6625D00E8198A /* ApiClientProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55B9F15224B6625D00E8198A /* ApiClientProtocol.swift */; };
165-
55C87D34299EE633002013D0 /* EmbeddedMessagingSerializationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55C87D33299EE633002013D0 /* EmbeddedMessagingSerializationTests.swift */; };
166167
55CC257B2462064F00A77FD5 /* InAppPresenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55CC257A2462064F00A77FD5 /* InAppPresenterTests.swift */; };
167168
55D54656239AE5750093ED1E /* IterableLogUtil.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55D54655239AE5750093ED1E /* IterableLogUtil.swift */; };
168169
55DD2015269E5A4200773CC7 /* IterableInboxViewControllerViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55DD2014269E5A4200773CC7 /* IterableInboxViewControllerViewDelegate.swift */; };
@@ -527,6 +528,10 @@
527528
00B6FACD210E874D007535CF /* prod-1.mobileprovision */ = {isa = PBXFileReference; lastKnownFileType = file; path = "prod-1.mobileprovision"; sourceTree = "<group>"; };
528529
00B6FAD0210E8D90007535CF /* dev-1.mobileprovision */ = {isa = PBXFileReference; lastKnownFileType = file; path = "dev-1.mobileprovision"; sourceTree = "<group>"; };
529530
00CB31B4210960C4004ACDEC /* TestUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestUtils.swift; sourceTree = "<group>"; };
531+
1CBFFE162A97AEEE00ED57EE /* EmbeddedManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmbeddedManagerTests.swift; sourceTree = "<group>"; };
532+
1CBFFE172A97AEEE00ED57EE /* EmbeddedMessagingProcessorTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmbeddedMessagingProcessorTests.swift; sourceTree = "<group>"; };
533+
1CBFFE182A97AEEE00ED57EE /* EmbeddedSessionManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmbeddedSessionManagerTests.swift; sourceTree = "<group>"; };
534+
1CBFFE192A97AEEF00ED57EE /* EmbeddedMessagingSerializationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmbeddedMessagingSerializationTests.swift; sourceTree = "<group>"; };
530535
1CCA911F2A27FA8700AEA213 /* MiscEmbeddedClasses.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MiscEmbeddedClasses.swift; sourceTree = "<group>"; };
531536
1CCA91212A28075A00AEA213 /* EmbeddedSessionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedSessionManager.swift; sourceTree = "<group>"; };
532537
55023E9B29132881003F69DC /* IterableEmbeddedMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableEmbeddedMessage.swift; sourceTree = "<group>"; };
@@ -538,11 +543,9 @@
538543
552A0AA6280E1FDA00A80963 /* DeepLinkManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeepLinkManager.swift; sourceTree = "<group>"; };
539544
5531CDAD22A9C992000D05E2 /* ClassExtensionsTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClassExtensionsTests.swift; sourceTree = "<group>"; };
540545
553449A029C2621E002E4599 /* EmbeddedMessagingProcessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedMessagingProcessor.swift; sourceTree = "<group>"; };
541-
553449A229C26A95002E4599 /* EmbeddedMessagingProcessorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedMessagingProcessorTests.swift; sourceTree = "<group>"; };
542546
5536781E2576FF9000DB3652 /* IterableUtilTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableUtilTests.swift; sourceTree = "<group>"; };
543547
5555424F28BED1B400DB5D20 /* KeychainWrapper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainWrapper.swift; sourceTree = "<group>"; };
544548
55684311298C6A9F006A5EB4 /* EmbeddedMessagingSerialization.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedMessagingSerialization.swift; sourceTree = "<group>"; };
545-
55684318298C8052006A5EB4 /* EmbeddedManagerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EmbeddedManagerTests.swift; sourceTree = "<group>"; };
546549
556FB1E9244FAF6A00EDF6BD /* InAppPresenter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppPresenter.swift; sourceTree = "<group>"; };
547550
557AE6BE24A56E5E00B57750 /* Auth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Auth.swift; sourceTree = "<group>"; };
548551
5585DF8E22A73390000A32B9 /* IterableInboxViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableInboxViewControllerTests.swift; sourceTree = "<group>"; };
@@ -575,7 +578,6 @@
575578
55B549852397462300243E87 /* InboxImpressionTrackerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InboxImpressionTrackerTests.swift; sourceTree = "<group>"; };
576579
55B9F15024B3D33700E8198A /* AuthTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthTests.swift; sourceTree = "<group>"; };
577580
55B9F15224B6625D00E8198A /* ApiClientProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApiClientProtocol.swift; sourceTree = "<group>"; };
578-
55C87D33299EE633002013D0 /* EmbeddedMessagingSerializationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmbeddedMessagingSerializationTests.swift; sourceTree = "<group>"; };
579581
55CC257A2462064F00A77FD5 /* InAppPresenterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppPresenterTests.swift; sourceTree = "<group>"; };
580582
55D54655239AE5750093ED1E /* IterableLogUtil.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableLogUtil.swift; sourceTree = "<group>"; };
581583
55DD2014269E5A4200773CC7 /* IterableInboxViewControllerViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IterableInboxViewControllerViewDelegate.swift; sourceTree = "<group>"; };
@@ -889,6 +891,17 @@
889891
name = "Test Files";
890892
sourceTree = "<group>";
891893
};
894+
1CBFFE152A97AEDC00ED57EE /* embedded-messaging-tests */ = {
895+
isa = PBXGroup;
896+
children = (
897+
1CBFFE162A97AEEE00ED57EE /* EmbeddedManagerTests.swift */,
898+
1CBFFE172A97AEEE00ED57EE /* EmbeddedMessagingProcessorTests.swift */,
899+
1CBFFE192A97AEEF00ED57EE /* EmbeddedMessagingSerializationTests.swift */,
900+
1CBFFE182A97AEEE00ED57EE /* EmbeddedSessionManagerTests.swift */,
901+
);
902+
name = "embedded-messaging-tests";
903+
sourceTree = "<group>";
904+
};
892905
551FA75C2988AC800072D0A9 /* Embedded Messaging */ = {
893906
isa = PBXGroup;
894907
children = (
@@ -939,16 +952,6 @@
939952
path = "swift-sdk/misc";
940953
sourceTree = "<group>";
941954
};
942-
55684317298C8036006A5EB4 /* embedded-messaging-tests */ = {
943-
isa = PBXGroup;
944-
children = (
945-
55684318298C8052006A5EB4 /* EmbeddedManagerTests.swift */,
946-
553449A229C26A95002E4599 /* EmbeddedMessagingProcessorTests.swift */,
947-
55C87D33299EE633002013D0 /* EmbeddedMessagingSerializationTests.swift */,
948-
);
949-
path = "embedded-messaging-tests";
950-
sourceTree = "<group>";
951-
};
952955
AC0248062279132400495FB9 /* Dwifft */ = {
953956
isa = PBXGroup;
954957
children = (
@@ -1288,16 +1291,17 @@
12881291
AC7B142C20D02CE200877BFE /* unit-tests */ = {
12891292
isa = PBXGroup;
12901293
children = (
1291-
AC87172421A4E3FF00FEA369 /* Helper Classes */,
1292-
00B6FACF210E8B10007535CF /* Test Files */,
1294+
1CBFFE152A97AEDC00ED57EE /* embedded-messaging-tests */,
12931295
552A0AAA280E24E400A80963 /* api-tests */,
12941296
AC3A3029262EE04400425435 /* deep-linking-tests */,
12951297
552A0AA8280E22B100A80963 /* device-token-tests */,
12961298
AC3A3032262EE15C00425435 /* foundational-tests */,
1299+
AC87172421A4E3FF00FEA369 /* Helper Classes */,
12971300
AC3A3053262EE1B500425435 /* in-app-tests */,
12981301
AC3A305C262EE24100425435 /* inbox-tests */,
12991302
552A0AA9280E249C00A80963 /* notification-tests */,
13001303
AC3A3075262EE26D00425435 /* request-tests */,
1304+
00B6FACF210E8B10007535CF /* Test Files */,
13011305
AC2C668620D3435700D46CC9 /* ActionRunnerTests.swift */,
13021306
55B9F15024B3D33700E8198A /* AuthTests.swift */,
13031307
ACB37AAF240268A60093A8EA /* SampleInboxViewDelegateImplementations.swift */,
@@ -1524,7 +1528,6 @@
15241528
isa = PBXGroup;
15251529
children = (
15261530
AC995F932166EC310099A184 /* common */,
1527-
55684317298C8036006A5EB4 /* embedded-messaging-tests */,
15281531
AC28480824AA44C600C1FC7F /* endpoint-tests */,
15291532
ACFBEA15262DC68C000935DD /* hosting-apps */,
15301533
ACDA976F23159C39004C412E /* inbox-ui-tests */,
@@ -2167,11 +2170,10 @@
21672170
5588DFB928C045E3000697D7 /* MockInAppDelegate.swift in Sources */,
21682171
5588DFD128C0465E000697D7 /* MockAPNSTypeChecker.swift in Sources */,
21692172
00B6FACC210E8484007535CF /* APNSTypeCheckerTests.swift in Sources */,
2170-
55C87D34299EE633002013D0 /* EmbeddedMessagingSerializationTests.swift in Sources */,
21712173
AC8F35A2239806B500302994 /* InboxViewControllerViewModelTests.swift in Sources */,
21722174
AC995F9A2166EEB50099A184 /* CommonMocks.swift in Sources */,
2173-
553449A329C26A95002E4599 /* EmbeddedMessagingProcessorTests.swift in Sources */,
21742175
5588DFE128C046B7000697D7 /* MockLocalStorage.swift in Sources */,
2176+
1CBFFE1B2A97AEEF00ED57EE /* EmbeddedMessagingProcessorTests.swift in Sources */,
21752177
5588DF8128C04494000697D7 /* MockUrlDelegate.swift in Sources */,
21762178
5585DF8F22A73390000A32B9 /* IterableInboxViewControllerTests.swift in Sources */,
21772179
55B9F15124B3D33700E8198A /* AuthTests.swift in Sources */,
@@ -2189,7 +2191,6 @@
21892191
55E6F462238E066400808BCE /* DeepLinkTests.swift in Sources */,
21902192
55B37FC1229620D20042F13A /* CommerceItemTests.swift in Sources */,
21912193
5588DFC128C0460E000697D7 /* MockNotificationCenter.swift in Sources */,
2192-
55684319298C8052006A5EB4 /* EmbeddedManagerTests.swift in Sources */,
21932194
5588DFC928C04642000697D7 /* MockInAppPersister.swift in Sources */,
21942195
AC776DA4211A17C700C27C27 /* IterableRequestUtilTests.swift in Sources */,
21952196
ACAA816E231163660035C743 /* RequestCreatorTests.swift in Sources */,
@@ -2208,8 +2209,10 @@
22082209
AC2C668420D3370600D46CC9 /* Mocks.swift in Sources */,
22092210
5588DF9928C04519000697D7 /* MockPushTracker.swift in Sources */,
22102211
AC64626B2140AACF0046E1BD /* IterableAPIResponseTests.swift in Sources */,
2212+
1CBFFE1D2A97AEEF00ED57EE /* EmbeddedMessagingSerializationTests.swift in Sources */,
22112213
5588DFB128C045C9000697D7 /* MockInAppDisplayer.swift in Sources */,
22122214
55B37FC6229752DD0042F13A /* OrderedDictionaryTests.swift in Sources */,
2215+
1CBFFE1C2A97AEEF00ED57EE /* EmbeddedSessionManagerTests.swift in Sources */,
22132216
5588DFD928C04683000697D7 /* MockWebView.swift in Sources */,
22142217
55B5498423973B5C00243E87 /* InboxSessionManagerTests.swift in Sources */,
22152218
ACB37AB0240268A60093A8EA /* SampleInboxViewDelegateImplementations.swift in Sources */,
@@ -2223,6 +2226,7 @@
22232226
ACEDF41F2183C436000B9BFE /* PendingTests.swift in Sources */,
22242227
AC1B29002742579000AD2BE3 /* InAppNavigationTests.swift in Sources */,
22252228
5588DF7128C0442D000697D7 /* MockDateProvider.swift in Sources */,
2229+
1CBFFE1A2A97AEEF00ED57EE /* EmbeddedManagerTests.swift in Sources */,
22262230
5588DF9128C044DE000697D7 /* MockUrlOpener.swift in Sources */,
22272231
);
22282232
runOnlyForDeploymentPostprocessing = 0;

swift-sdk/Internal/IterableEmbeddedManager.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,14 @@ class IterableEmbeddedManager: NSObject, IterableEmbeddedManagerProtocol {
1111

1212
self.apiClient = apiClient
1313
super.init()
14+
addForegroundObservers()
1415
}
1516

17+
var onDeinit: (() -> Void)?
1618
deinit {
1719
ITBInfo()
20+
removeForegroundObservers()
21+
onDeinit?()
1822
}
1923

2024
public func getMessages() -> [IterableEmbeddedMessage] {
@@ -63,13 +67,9 @@ class IterableEmbeddedManager: NSObject, IterableEmbeddedManagerProtocol {
6367

6468

6569
private func retrieveEmbeddedMessages(completion: @escaping () -> Void) {
66-
print("retrieve embeddeded messages")
6770
apiClient.getEmbeddedMessages()
6871
.onCompletion(
6972
receiveValue: { embeddedMessagesPayload in
70-
71-
print("got embeddedMessagesPayload")
72-
print(embeddedMessagesPayload)
7373
let placements = embeddedMessagesPayload.placements
7474
let fetchedMessages = placements.flatMap { $0.embeddedMessages }
7575

swift-sdk/Internal/Pending.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,14 @@ class Pending<Value, Failure> where Failure: Error {
9797
}
9898
}
9999

100+
// need this class for testing failure
101+
class FailPending<Value, Failure: Error>: Pending<Value, Failure> {
102+
init(error: Failure) {
103+
super.init()
104+
self.result = .failure(error)
105+
}
106+
}
107+
100108
extension Pending {
101109
func flatMap<NewValue>(_ closure: @escaping (Value) -> Pending<NewValue, Failure>) -> Pending<NewValue, Failure> {
102110
let fulfill = Fulfill<NewValue, Failure>()

tests/embedded-messaging-tests/EmbeddedManagerTests.swift

Lines changed: 0 additions & 87 deletions
This file was deleted.

0 commit comments

Comments
 (0)