@@ -28,7 +28,8 @@ import OneSignalCore
28
28
*/
29
29
@objc
30
30
public class MockOneSignalClient : NSObject , IOneSignalClient {
31
- public let executionQueue : DispatchQueue = DispatchQueue ( label: " com.onesignal.execution " , attributes: . concurrent)
31
+ public let executionQueue : DispatchQueue = DispatchQueue ( label: " com.onesignal.execution. \( UUID ( ) . uuidString) " , attributes: . concurrent)
32
+
32
33
let lock = NSLock ( )
33
34
34
35
var mockResponses : [ String : [ String : Any ] ] = [ : ]
@@ -45,7 +46,8 @@ public class MockOneSignalClient: NSObject, IOneSignalClient {
45
46
var remoteParamsOutcomes : [ String : Any ] = [ : ]
46
47
47
48
public var allRequestsHandled = true
48
-
49
+ var numDispatches = 0
50
+
49
51
/** May add to or change this default remote params response*/
50
52
public func getRemoteParamsResponse( ) -> [ String : Any ] {
51
53
return remoteParamsResponse ?? [
@@ -147,6 +149,7 @@ public class MockOneSignalClient: NSObject, IOneSignalClient {
147
149
allRequestsHandled = false
148
150
print ( " 🧪 cannot find a mock response for request: \( stringifiedRequest) " )
149
151
}
152
+ numDispatches += 1
150
153
}
151
154
152
155
func didCompleteRequest( _ request: OneSignalRequest ) {
@@ -170,6 +173,15 @@ public class MockOneSignalClient: NSObject, IOneSignalClient {
170
173
public func setMockFailureResponseForRequest( request: String , error: NSError ) {
171
174
mockFailureResponses [ request] = error
172
175
}
176
+
177
+ @objc
178
+ public func waitForRequestsToComplete( ) {
179
+ while self . numDispatches < executedRequests. count {
180
+ executionQueue. sync {
181
+ Thread . sleep ( forTimeInterval: TimeInterval ( 1 ) )
182
+ }
183
+ }
184
+ }
173
185
}
174
186
175
187
// MARK: - Asserts
0 commit comments