Skip to content

Commit f2869a8

Browse files
committed
[tests] Mock Client has flag to let all requests through
* Add a flag called `fireSuccessForAllRequests` that will fire the success callback for all requests so that they don't need to be manually set up using mock responses beforehand. * This is useful for tests that want the client to return success but don't need the details of particular requests.
1 parent 58ef7a1 commit f2869a8

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

iOS_SDK/OneSignalSDK/OneSignalCoreMocks/MockOneSignalClient.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@ public class MockOneSignalClient: NSObject, IOneSignalClient {
3737
public var networkRequestCount = 0
3838
public var executedRequests: [OneSignalRequest] = []
3939
public var executeInstantaneously = false
40+
/// Set to true to make it unnecessary to setup mock responses for every request possible
41+
public var fireSuccessForAllRequests = false
4042

4143
var remoteParamsResponse: [String: Any]?
4244
var shouldUseProvisionalAuthorization = false // new in iOS 12 (aka Direct to History)
@@ -138,6 +140,9 @@ public class MockOneSignalClient: NSObject, IOneSignalClient {
138140
successBlock(mockResponses[stringifiedRequest])
139141
} else if (mockFailureResponses[stringifiedRequest]) != nil {
140142
failureBlock(mockFailureResponses[stringifiedRequest])
143+
} else if fireSuccessForAllRequests {
144+
allRequestsHandled = false
145+
successBlock([:])
141146
} else {
142147
allRequestsHandled = false
143148
print("🧪 cannot find a mock response for request: \(stringifiedRequest)")

0 commit comments

Comments
 (0)