@@ -348,12 +348,11 @@ final class UserExecutorTests: XCTestCase {
348348
349349 mocks. setAuthRequired ( true )
350350
351- _ = mocks. setUserManagerInternalUser ( externalId: userA_EUID)
351+ let userA = mocks. setUserManagerInternalUser ( externalId: userA_EUID, onesignalId : userA_OSID )
352352 // We need to use the user manager's executor because the onJWTUpdated callback won't fire on the mock executor
353353 let executor = OneSignalUserManagerImpl . sharedInstance. userExecutor!
354354
355- let userAIdentityModel = OSIdentityModel ( aliases: [ OS_ONESIGNAL_ID: userA_OSID, OS_EXTERNAL_ID: userA_EUID] , changeNotifier: OSEventProducer ( ) )
356- userAIdentityModel. jwtBearerToken = userA_InvalidJwtToken
355+ userA. identityModel. jwtBearerToken = userA_InvalidJwtToken
357356
358357 MockUserRequests . setUnauthorizedFetchUserFailureResponses ( with: mocks. client, onesignalId: userA_OSID)
359358 MockUserRequests . setUnauthorizedCreateUserFailureResponses ( with: mocks. client, externalId: userA_EUID)
@@ -364,8 +363,8 @@ final class UserExecutorTests: XCTestCase {
364363 }
365364
366365 /* When */
367- executor. fetchUser ( onesignalId: userA_OSID, identityModel: userAIdentityModel )
368- executor. createUser ( aliasLabel: OS_EXTERNAL_ID, aliasId: userA_EUID, identityModel: userAIdentityModel )
366+ executor. fetchUser ( onesignalId: userA_OSID, identityModel: userA . identityModel )
367+ executor. createUser ( aliasLabel: OS_EXTERNAL_ID, aliasId: userA_EUID, identityModel: userA . identityModel )
369368 OneSignalCoreMocks . waitForBackgroundThreads ( seconds: 0.5 )
370369
371370 MockUserRequests . setDefaultFetchUserResponseForHydration ( with: mocks. client, externalId: userA_EUID)
@@ -379,24 +378,34 @@ final class UserExecutorTests: XCTestCase {
379378 XCTAssertTrue ( mocks. client. hasExecutedRequestOfType ( OSRequestFetchUser . self) )
380379 XCTAssertTrue ( mocks. client. hasExecutedRequestOfType ( OSRequestCreateUser . self) )
381380 XCTAssertTrue ( invalidatedCallbackWasCalled)
382- XCTAssertEqual ( mocks. client. networkRequestCount, 4 )
381+ /*
382+ Create and Fetch requests that fail
383+ Create and Fetch requests that pass
384+ Follow up Fetch made after the success of the Create request
385+ */
386+ XCTAssertEqual ( mocks. client. networkRequestCount, 5 )
383387 }
384388
389+ /**
390+ This test executes a Fetch on userA, and a Create on userB, encountering an unauthorized response for both requests.
391+ The test next updates the JWT token for userA only.
392+ It expects only the Fetch userA request to be sent next.
393+ */
385394 func testUserRequests_RetryRequests_OnTokenUpdate_ForOnlyUpdatedUser( ) {
386395 /* Setup */
387396 let mocks = Mocks ( )
388397
389398 mocks. setAuthRequired ( true )
390399
391- _ = mocks. setUserManagerInternalUser ( externalId: userA_EUID)
400+ let userA = mocks. setUserManagerInternalUser ( externalId: userA_EUID, onesignalId : userA_OSID )
392401 // We need to use the user manager's executor because the onJWTUpdated callback won't fire on the mock executor
393402 let executor = OneSignalUserManagerImpl . sharedInstance. userExecutor!
394403
395- let userAIdentityModel = OSIdentityModel ( aliases: [ OS_ONESIGNAL_ID: userA_OSID, OS_EXTERNAL_ID: userA_EUID] , changeNotifier: OSEventProducer ( ) )
396- userAIdentityModel. jwtBearerToken = userA_InvalidJwtToken
404+ userA. identityModel. jwtBearerToken = userA_InvalidJwtToken
397405
398406 let userBIdentityModel = OSIdentityModel ( aliases: [ OS_ONESIGNAL_ID: userB_OSID, OS_EXTERNAL_ID: userB_EUID] , changeNotifier: OSEventProducer ( ) )
399407 userBIdentityModel. jwtBearerToken = userA_InvalidJwtToken
408+ OneSignalUserManagerImpl . sharedInstance. addIdentityModelToRepo ( userBIdentityModel)
400409
401410 MockUserRequests . setUnauthorizedFetchUserFailureResponses ( with: mocks. client, onesignalId: userA_OSID)
402411 MockUserRequests . setUnauthorizedCreateUserFailureResponses ( with: mocks. client, externalId: userB_EUID)
@@ -407,7 +416,7 @@ final class UserExecutorTests: XCTestCase {
407416 }
408417
409418 /* When */
410- executor. fetchUser ( onesignalId: userA_OSID, identityModel: userAIdentityModel )
419+ executor. fetchUser ( onesignalId: userA_OSID, identityModel: userA . identityModel )
411420 executor. createUser ( aliasLabel: OS_EXTERNAL_ID, aliasId: userB_EUID, identityModel: userBIdentityModel)
412421 OneSignalCoreMocks . waitForBackgroundThreads ( seconds: 0.5 )
413422
0 commit comments