From 8e8b5ee0cdcc46c4d5f335764a59a92d476afc1a Mon Sep 17 00:00:00 2001 From: Nan Date: Tue, 9 Jun 2026 08:24:20 -0700 Subject: [PATCH 1/2] tests: clear resilient storage between tests --- .../OneSignalOSCoreMocks/OSCoreMocks.swift | 10 ++++++++++ .../OneSignalUserMocks/OneSignalUserMocks.swift | 1 + 2 files changed, 11 insertions(+) diff --git a/iOS_SDK/OneSignalSDK/OneSignalOSCoreMocks/OSCoreMocks.swift b/iOS_SDK/OneSignalSDK/OneSignalOSCoreMocks/OSCoreMocks.swift index 6a144eef7..7619dacb6 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalOSCoreMocks/OSCoreMocks.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalOSCoreMocks/OSCoreMocks.swift @@ -34,6 +34,16 @@ public class OSCoreMocks: NSObject { public static func resetOperationRepo() { OSOperationRepo.sharedInstance.reset() } + + /// Clears the file-backed `OSResilientStorage` identifier mirror between tests. + public static func resetResilientStorage() { + OSResilientStorage.setString(nil, forKey: OSResilientStorage.keySubscriptionId) + OSResilientStorage.setString(nil, forKey: OSResilientStorage.keyAppId) + OSResilientStorage.setString(nil, forKey: OSResilientStorage.keyReceiveReceiptsEnabled) + OSResilientStorage.setString(nil, forKey: OSResilientStorage.keyHasPriorSession) + // Force the async write queue to drain so the cleared state is on disk before the test runs. + _ = OSResilientStorage.snapshot() + } } extension OSOperationRepo { diff --git a/iOS_SDK/OneSignalSDK/OneSignalUserMocks/OneSignalUserMocks.swift b/iOS_SDK/OneSignalSDK/OneSignalUserMocks/OneSignalUserMocks.swift index da94af841..569c60f9b 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalUserMocks/OneSignalUserMocks.swift +++ b/iOS_SDK/OneSignalSDK/OneSignalUserMocks/OneSignalUserMocks.swift @@ -38,6 +38,7 @@ public class OneSignalUserMocks: NSObject { @objc public static func reset() { OSCoreMocks.resetOperationRepo() + OSCoreMocks.resetResilientStorage() OneSignalUserManagerImpl.sharedInstance.reset() } From cebb86c65daa8ed282ea93208dc53d0023a6efdc Mon Sep 17 00:00:00 2001 From: Nan Date: Tue, 9 Jun 2026 09:14:10 -0700 Subject: [PATCH 2/2] tests: fix reorder of testSendPurchases --- .../OneSignalUserTests/OneSignalUserObjcTests.m | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/iOS_SDK/OneSignalSDK/OneSignalUserTests/OneSignalUserObjcTests.m b/iOS_SDK/OneSignalSDK/OneSignalUserTests/OneSignalUserObjcTests.m index 9348f639e..cf36c3928 100644 --- a/iOS_SDK/OneSignalSDK/OneSignalUserTests/OneSignalUserObjcTests.m +++ b/iOS_SDK/OneSignalSDK/OneSignalUserTests/OneSignalUserObjcTests.m @@ -33,13 +33,13 @@ - (void)testSendPurchases { MockOneSignalClient* client = [MockOneSignalClient new]; - // 0. Purchases will be dropped if there is no user instance. - [OneSignalUserManagerImpl.sharedInstance start]; - - // 1. Set up mock responses for the anonymous user + // 0. Set up mock responses for the anonymous user and install the mock client BEFORE start() [MockUserRequests setDefaultCreateAnonUserResponsesWith:client onesignalId:nil subscriptionId:nil]; [OneSignalCoreImpl setSharedClient:client]; + // 1. Purchases will be dropped if there is no user instance, so create the user first. + [OneSignalUserManagerImpl.sharedInstance start]; + /* When */ NSMutableArray* arrayOfPurchases = [NSMutableArray new];