Skip to content

Commit 0a6d57e

Browse files
nan-licursoragent
andcommitted
test: [SDK-4814] extract shared subscribed-user setup helper
The relaunch regression test pushed OSLiveActivitiesExecutorTests over SwiftLint's type_body_length error threshold, failing the CI lint step. Collapse the repeated per-test subscribed-user setup into a single helper, which removes the duplication and keeps the class body under the limit. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 350ae9d commit 0a6d57e

1 file changed

Lines changed: 24 additions & 108 deletions

File tree

iOS_SDK/OneSignalSDK/OneSignalLiveActivitiesTests/OSLiveActivitiesExecutorTests.swift

Lines changed: 24 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -49,16 +49,22 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
4949

5050
override func tearDownWithError() throws { }
5151

52-
func testAppendSetStartTokenWithSuccessfulRequest() throws {
53-
/* Setup */
54-
let mockDispatchQueue = MockDispatchQueue()
52+
// Subscribes a user, then resets the client so tests assert only on the requests they make.
53+
private func setUpSubscribedUser() -> MockOneSignalClient {
5554
let mockClient = MockOneSignalClient()
5655
OneSignalCoreImpl.setSharedClient(mockClient)
5756
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
5857
OneSignalUserManagerImpl.sharedInstance.start()
5958
// Wait for any user setup requests to complete
6059
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
6160
mockClient.reset()
61+
return mockClient
62+
}
63+
64+
func testAppendSetStartTokenWithSuccessfulRequest() throws {
65+
/* Setup */
66+
let mockDispatchQueue = MockDispatchQueue()
67+
let mockClient = setUpSubscribedUser()
6268

6369
let request = OSRequestSetStartToken(key: "my-activity-type", token: "my-token")
6470
mockClient.setMockResponseForRequest(request: String(describing: request), response: [String: Any]())
@@ -79,13 +85,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
7985
func testRemoveStartTokenWithSuccessfulRequest() throws {
8086
/* Setup */
8187
let mockDispatchQueue = MockDispatchQueue()
82-
let mockClient = MockOneSignalClient()
83-
OneSignalCoreImpl.setSharedClient(mockClient)
84-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
85-
OneSignalUserManagerImpl.sharedInstance.start()
86-
// Wait for any user setup requests to complete
87-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
88-
mockClient.reset()
88+
let mockClient = setUpSubscribedUser()
8989

9090
let request = OSRequestRemoveStartToken(key: "my-activity-type")
9191
mockClient.setMockResponseForRequest(request: String(describing: request), response: [String: Any]())
@@ -104,13 +104,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
104104
func testSetUpdateTokenWithSuccessfulRequest() throws {
105105
/* Setup */
106106
let mockDispatchQueue = MockDispatchQueue()
107-
let mockClient = MockOneSignalClient()
108-
OneSignalCoreImpl.setSharedClient(mockClient)
109-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
110-
OneSignalUserManagerImpl.sharedInstance.start()
111-
// Wait for any user setup requests to complete
112-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
113-
mockClient.reset()
107+
let mockClient = setUpSubscribedUser()
114108

115109
let request = OSRequestSetUpdateToken(key: "my-activity-id", token: "my-token")
116110
mockClient.setMockResponseForRequest(request: String(describing: request), response: [String: Any]())
@@ -131,13 +125,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
131125
func testRemoveUpdateTokenWithSuccessfulRequest() throws {
132126
/* Setup */
133127
let mockDispatchQueue = MockDispatchQueue()
134-
let mockClient = MockOneSignalClient()
135-
OneSignalCoreImpl.setSharedClient(mockClient)
136-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
137-
OneSignalUserManagerImpl.sharedInstance.start()
138-
// Wait for any user setup requests to complete
139-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
140-
mockClient.reset()
128+
let mockClient = setUpSubscribedUser()
141129

142130
let request = OSRequestRemoveUpdateToken(key: "my-activity-id")
143131
mockClient.setMockResponseForRequest(request: String(describing: request), response: [String: Any]())
@@ -156,13 +144,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
156144
func testReceiveReceiptsWithSuccessfulRequest() throws {
157145
/* Setup */
158146
let mockDispatchQueue = MockDispatchQueue()
159-
let mockClient = MockOneSignalClient()
160-
OneSignalCoreImpl.setSharedClient(mockClient)
161-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
162-
OneSignalUserManagerImpl.sharedInstance.start()
163-
// Wait for any user setup requests to complete
164-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
165-
mockClient.reset()
147+
let mockClient = setUpSubscribedUser()
166148

167149
let request = OSRequestLiveActivityReceiveReceipts(key: "notification-id", activityType: "my-activity-type", activityId: "my-activity-id")
168150
mockClient.setMockResponseForRequest(request: String(describing: request), response: [String: Any]())
@@ -183,13 +165,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
183165
func testClickEventWithSuccessfulRequest() throws {
184166
/* Setup */
185167
let mockDispatchQueue = MockDispatchQueue()
186-
let mockClient = MockOneSignalClient()
187-
OneSignalCoreImpl.setSharedClient(mockClient)
188-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
189-
OneSignalUserManagerImpl.sharedInstance.start()
190-
// Wait for any user setup requests to complete
191-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
192-
mockClient.reset()
168+
let mockClient = setUpSubscribedUser()
193169

194170
let request = OSRequestLiveActivityClicked(key: "unique-click-id", activityType: "my-activity-type", activityId: "my-activity-id", notificationId: "my-notif-id")
195171
mockClient.setMockResponseForRequest(request: String(describing: request), response: [String: Any]())
@@ -227,13 +203,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
227203
func testRequestStaysInCacheForRetryableError() throws {
228204
/* Setup */
229205
let mockDispatchQueue = MockDispatchQueue()
230-
let mockClient = MockOneSignalClient()
231-
OneSignalCoreImpl.setSharedClient(mockClient)
232-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
233-
OneSignalUserManagerImpl.sharedInstance.start()
234-
// Wait for any user setup requests to complete
235-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
236-
mockClient.reset()
206+
let mockClient = setUpSubscribedUser()
237207

238208
let request = OSRequestSetStartToken(key: "my-activity-type", token: "my-token")
239209
mockClient.setMockFailureResponseForRequest(request: String(describing: request), error: OneSignalClientError(code: 500, message: "not-important", responseHeaders: nil, response: nil, underlyingError: nil))
@@ -254,13 +224,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
254224
func testRequestRemovedFromCacheForNonRetryableError() throws {
255225
/* Setup */
256226
let mockDispatchQueue = MockDispatchQueue()
257-
let mockClient = MockOneSignalClient()
258-
OneSignalCoreImpl.setSharedClient(mockClient)
259-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
260-
OneSignalUserManagerImpl.sharedInstance.start()
261-
// Wait for any user setup requests to complete
262-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
263-
mockClient.reset()
227+
let mockClient = setUpSubscribedUser()
264228

265229
let request = OSRequestSetStartToken(key: "my-activity-type", token: "my-token")
266230
mockClient.setMockFailureResponseForRequest(request: String(describing: request), error: OneSignalClientError(code: 401, message: "not-important", responseHeaders: nil, response: nil, underlyingError: nil))
@@ -321,13 +285,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
321285
func testSetStartRequestNotExecutedWithSameActivityTypeAndToken() throws {
322286
/* Setup */
323287
let mockDispatchQueue = MockDispatchQueue()
324-
let mockClient = MockOneSignalClient()
325-
OneSignalCoreImpl.setSharedClient(mockClient)
326-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
327-
OneSignalUserManagerImpl.sharedInstance.start()
328-
// Wait for any user setup requests to complete
329-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
330-
mockClient.reset()
288+
let mockClient = setUpSubscribedUser()
331289

332290
let request1 = OSRequestSetStartToken(key: "my-activity-type", token: "my-token")
333291
let request2 = OSRequestSetStartToken(key: "my-activity-type", token: "my-token")
@@ -350,13 +308,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
350308
func testSetStartRequestNotExecutedWithSameActivityTypeAndDiffToken() throws {
351309
/* Setup */
352310
let mockDispatchQueue = MockDispatchQueue()
353-
let mockClient = MockOneSignalClient()
354-
OneSignalCoreImpl.setSharedClient(mockClient)
355-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
356-
OneSignalUserManagerImpl.sharedInstance.start()
357-
// Wait for any user setup requests to complete
358-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
359-
mockClient.reset()
311+
let mockClient = setUpSubscribedUser()
360312

361313
let request1 = OSRequestSetStartToken(key: "my-activity-type", token: "my-token-1")
362314
let request2 = OSRequestSetStartToken(key: "my-activity-type", token: "my-token-2")
@@ -380,13 +332,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
380332
func testSetStartRequestFollowedByRemoveStartIsSuccessful() throws {
381333
/* Setup */
382334
let mockDispatchQueue = MockDispatchQueue()
383-
let mockClient = MockOneSignalClient()
384-
OneSignalCoreImpl.setSharedClient(mockClient)
385-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
386-
OneSignalUserManagerImpl.sharedInstance.start()
387-
// Wait for any user setup requests to complete
388-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
389-
mockClient.reset()
335+
let mockClient = setUpSubscribedUser()
390336

391337
let request1 = OSRequestSetStartToken(key: "my-activity-type", token: "my-token-1")
392338
let request2 = OSRequestRemoveStartToken(key: "my-activity-type")
@@ -409,13 +355,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
409355
func testSetUpdateRequestNotExecutedWithSameActivityIdAndToken() throws {
410356
/* Setup */
411357
let mockDispatchQueue = MockDispatchQueue()
412-
let mockClient = MockOneSignalClient()
413-
OneSignalCoreImpl.setSharedClient(mockClient)
414-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
415-
OneSignalUserManagerImpl.sharedInstance.start()
416-
// Wait for any user setup requests to complete
417-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
418-
mockClient.reset()
358+
let mockClient = setUpSubscribedUser()
419359

420360
let request1 = OSRequestSetUpdateToken(key: "my-activity-id", token: "my-token")
421361
let request2 = OSRequestSetUpdateToken(key: "my-activity-id", token: "my-token")
@@ -438,13 +378,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
438378
func testSetUpdateRequestNotExecutedWithSameActivityIdAndDiffToken() throws {
439379
/* Setup */
440380
let mockDispatchQueue = MockDispatchQueue()
441-
let mockClient = MockOneSignalClient()
442-
OneSignalCoreImpl.setSharedClient(mockClient)
443-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
444-
OneSignalUserManagerImpl.sharedInstance.start()
445-
// Wait for any user setup requests to complete
446-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
447-
mockClient.reset()
381+
let mockClient = setUpSubscribedUser()
448382

449383
let request1 = OSRequestSetUpdateToken(key: "my-activity-id", token: "my-token-1")
450384
let request2 = OSRequestSetUpdateToken(key: "my-activity-id", token: "my-token-2")
@@ -468,13 +402,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
468402
func testSetUpdateRequestFollowedByRemoveUpdateIsSuccessful() throws {
469403
/* Setup */
470404
let mockDispatchQueue = MockDispatchQueue()
471-
let mockClient = MockOneSignalClient()
472-
OneSignalCoreImpl.setSharedClient(mockClient)
473-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
474-
OneSignalUserManagerImpl.sharedInstance.start()
475-
// Wait for any user setup requests to complete
476-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
477-
mockClient.reset()
405+
let mockClient = setUpSubscribedUser()
478406

479407
let request1 = OSRequestSetUpdateToken(key: "my-activity-id", token: "my-token-1")
480408
let request2 = OSRequestRemoveUpdateToken(key: "my-activity-id")
@@ -497,13 +425,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
497425
func testReceiveReceiptsRequestNotExecutedWithSameNotificationId() throws {
498426
/* Setup */
499427
let mockDispatchQueue = MockDispatchQueue()
500-
let mockClient = MockOneSignalClient()
501-
OneSignalCoreImpl.setSharedClient(mockClient)
502-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
503-
OneSignalUserManagerImpl.sharedInstance.start()
504-
// Wait for any user setup requests to complete
505-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
506-
mockClient.reset()
428+
let mockClient = setUpSubscribedUser()
507429

508430
let request1 = OSRequestLiveActivityReceiveReceipts(key: "my-notification-id", activityType: "my-activity-type-1", activityId: "my-activity-id-1")
509431
let request2 = OSRequestLiveActivityReceiveReceipts(key: "my-notification-id", activityType: "my-activity-type-2", activityId: "my-activity-id-2")
@@ -530,13 +452,7 @@ final class OSLiveActivitiesExecutorTests: XCTestCase {
530452
*/
531453
func testReceiveReceiptsNotResentForSameNotificationIdAfterRelaunch() throws {
532454
/* Setup */
533-
let mockClient = MockOneSignalClient()
534-
OneSignalCoreImpl.setSharedClient(mockClient)
535-
OneSignalUserDefaults.initShared().saveString(forKey: OSUD_LEGACY_PLAYER_ID, withValue: "my-subscription-id")
536-
OneSignalUserManagerImpl.sharedInstance.start()
537-
// Wait for any user setup requests to complete
538-
OneSignalCoreMocks.waitForBackgroundThreads(seconds: 0.2)
539-
mockClient.reset()
455+
let mockClient = setUpSubscribedUser()
540456

541457
let request1 = OSRequestLiveActivityReceiveReceipts(key: "my-notification-id", activityType: "my-activity-type", activityId: "my-activity-id")
542458
let request2 = OSRequestLiveActivityReceiveReceipts(key: "my-notification-id", activityType: "my-activity-type", activityId: "my-activity-id")

0 commit comments

Comments
 (0)