@@ -223,6 +223,38 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
223223 XCTAssertTrue ( mockClient. executedRequests [ 0 ] == request)
224224 }
225225
226+ func testRequestsUncacheCorrectly( ) throws {
227+ /* Setup */
228+ let mockClient = MockOneSignalClient ( )
229+ OneSignalCoreImpl . setSharedClient ( mockClient)
230+ let mockDispatchQueue = MockDispatchQueue ( )
231+ let executor1 = OSLiveActivitiesExecutor ( requestDispatch: mockDispatchQueue)
232+
233+ /* When */
234+ let setStartToken = OSRequestSetStartToken ( key: " key-setStartToken " , token: " my-token " )
235+ let removeStartToken = OSRequestRemoveStartToken ( key: " key-removeStartToken " )
236+ let setUpdateToken = OSRequestSetUpdateToken ( key: " key-setUpdateToken " , token: " my-token " )
237+ let removeUpdateToken = OSRequestRemoveUpdateToken ( key: " key-removeUpdateToken " )
238+
239+ executor1. append ( setStartToken)
240+ executor1. append ( removeStartToken)
241+ executor1. append ( setUpdateToken)
242+ executor1. append ( removeUpdateToken)
243+ mockDispatchQueue. waitForDispatches ( 4 )
244+
245+ // create a new executor which will uncache requests
246+ let executor2 = OSLiveActivitiesExecutor ( requestDispatch: MockDispatchQueue ( ) )
247+
248+ /* Then */
249+ XCTAssertEqual ( executor2. startTokens. items. count, 2 )
250+ XCTAssertTrue ( executor2. startTokens. items [ " key-setStartToken " ] is OSRequestSetStartToken )
251+ XCTAssertTrue ( executor2. startTokens. items [ " key-removeStartToken " ] is OSRequestRemoveStartToken )
252+
253+ XCTAssertEqual ( executor2. updateTokens. items. count, 2 )
254+ XCTAssertTrue ( executor2. updateTokens. items [ " key-setUpdateToken " ] is OSRequestSetUpdateToken )
255+ XCTAssertTrue ( executor2. updateTokens. items [ " key-removeUpdateToken " ] is OSRequestRemoveUpdateToken )
256+ }
257+
226258 func testSetStartRequestNotExecutedWithSameActivityTypeAndToken( ) throws {
227259 /* Setup */
228260 let mockDispatchQueue = MockDispatchQueue ( )
0 commit comments