diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift index b87acc2f13caf51d2998d3a864a6484f897dc528..3494df5038485e75f297f6e034859754c6b290ad 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift @@ -1,3 +1,4 @@ +import Foundation import XXClient import XCTestDynamicOverlay @@ -9,21 +10,21 @@ public struct MessengerWaitForNodes { case timeout } - public var run: (Double, Int, Int, @escaping Progress) throws -> Void + public var run: (Double, TimeInterval, Int, @escaping Progress) throws -> Void public func callAsFunction( targetRatio: Double = 0.8, - sleepMS: Int = 1_000, + sleepInterval: TimeInterval = 1, retries: Int = 10, onProgress: @escaping Progress = { _ in } ) throws { - try run(targetRatio, sleepMS, retries, onProgress) + try run(targetRatio, sleepInterval, retries, onProgress) } } extension MessengerWaitForNodes { public static func live(_ env: MessengerEnvironment) -> MessengerWaitForNodes { - MessengerWaitForNodes { targetRatio, sleepMS, retries, onProgress in + MessengerWaitForNodes { targetRatio, sleepInterval, retries, onProgress in guard let cMix = env.cMix() else { throw Error.notLoaded } @@ -33,7 +34,7 @@ extension MessengerWaitForNodes { onProgress(report) while report.ratio < targetRatio && retries > 0 { - env.sleep(sleepMS) + env.sleep(sleepInterval) report = try cMix.getNodeRegistrationStatus() retries -= 1 onProgress(report) diff --git a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift index 0918142a1f92dd6bbc5392bb562113464f349b20..6ac78b1e8dc416db224b2e6dd3be699c68b31fb6 100644 --- a/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift +++ b/Sources/XXMessengerClient/Messenger/MessengerEnvironment.swift @@ -17,7 +17,7 @@ public struct MessengerEnvironment { public var newCMix: NewCMix public var newOrLoadUd: NewOrLoadUd public var passwordStorage: PasswordStorage - public var sleep: (Int) -> Void + public var sleep: (TimeInterval) -> Void public var storageDir: String public var ud: Stored<UserDiscovery?> public var udAddress: String? @@ -48,7 +48,7 @@ extension MessengerEnvironment { newCMix: .live, newOrLoadUd: .live, passwordStorage: .keychain, - sleep: { Foundation.sleep(UInt32($0)) }, + sleep: { Thread.sleep(forTimeInterval: $0) }, storageDir: MessengerEnvironment.defaultStorageDir, ud: .inMemory(), udAddress: nil, diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift index bc23afb53c604fd0b737bba5db544edfebdffe68..4d009502ef39cb10712dff2c7abd77c2787c5087 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift @@ -32,7 +32,7 @@ final class MessengerWaitForNodesTests: XCTestCase { try waitForNodes( targetRatio: 0.7, - sleepMS: 123, + sleepInterval: 123, retries: 3, onProgress: { didProgress.append($0) } ) @@ -43,7 +43,7 @@ final class MessengerWaitForNodesTests: XCTestCase { } func testWaitForTargetRatio() throws { - var didSleep: [Int] = [] + var didSleep: [TimeInterval] = [] var didProgress: [NodeRegistrationReport] = [] var reports: [NodeRegistrationReport] = [ @@ -63,7 +63,7 @@ final class MessengerWaitForNodesTests: XCTestCase { try waitForNodes( targetRatio: 0.7, - sleepMS: 123, + sleepInterval: 123, retries: 3, onProgress: { didProgress.append($0) } ) @@ -77,7 +77,7 @@ final class MessengerWaitForNodesTests: XCTestCase { } func testWaitTimeout() { - var didSleep: [Int] = [] + var didSleep: [TimeInterval] = [] var didProgress: [NodeRegistrationReport] = [] var reports: [NodeRegistrationReport] = [ @@ -98,7 +98,7 @@ final class MessengerWaitForNodesTests: XCTestCase { XCTAssertThrowsError(try waitForNodes( targetRatio: 0.7, - sleepMS: 123, + sleepInterval: 123, retries: 3, onProgress: { didProgress.append($0) } )) { error in