Skip to content

Commit e05a6ef

Browse files
Merge pull request #508 from Iterable/tapash/mob-3241-in-app-delivery
[MOB-3241] - Do not count server read messages as delivered.
2 parents 2633c5c + 4879bba commit e05a6ef

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

swift-sdk/Internal/InAppManager+Functions.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,11 @@ struct MessagesObtainedHandler {
138138
}
139139
}
140140

141+
let deliveredMessages = addedMessages.filter { $0.read != true }
142+
141143
return MergeMessagesResult(inboxChanged: removedInboxCount + addedInboxCount + messagesOverwritten > 0,
142144
messagesMap: newMessagesMap,
143-
deliveredMessages: addedMessages)
145+
deliveredMessages: deliveredMessages)
144146
}
145147

146148
private let messagesMap: OrderedDictionary<String, IterableInAppMessage>

tests/unit-tests/InAppMessageProcessorTests.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,21 @@ class InAppMessageProcessorTests: XCTestCase {
2424
XCTAssertTrue(result.inboxChanged)
2525
}
2626

27+
func testDoNotCountNewReadMessageAsDelivered() throws {
28+
let localMessage = Self.makeEmptyInboxMessage("msg-1")
29+
let serverMessage1 = Self.makeEmptyInboxMessage("msg-2")
30+
serverMessage1.read = true
31+
let serverMessage2 = Self.makeEmptyInboxMessage("msg-3")
32+
serverMessage2.read = false
33+
34+
let messagesMap: OrderedDictionary<String, IterableInAppMessage> = ["msg-1": localMessage]
35+
let newMessages = [serverMessage1, serverMessage2]
36+
37+
let result = MessagesObtainedHandler(messagesMap: messagesMap,
38+
messages: newMessages).handle()
39+
XCTAssertEqual(result.deliveredMessages.count, 1)
40+
}
41+
2742
private static let emptyInAppContent = IterableHtmlInAppContent(edgeInsets: .zero, html: "")
2843

2944
private static func makeEmptyMessage() -> IterableInAppMessage {

0 commit comments

Comments
 (0)