From f3e9c45ed402429ba593b096eb8c3c459e953349 Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Mon, 22 Aug 2022 19:46:29 +0100 Subject: [PATCH] Update MessengerWaitForNodes.Progress callback --- .../Functors/MessengerWaitForNodes.swift | 12 ++++------ .../Functors/MessengerWaitForNodesTests.swift | 23 ++++++++++++++----- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift index 39048a37..8fc11899 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerWaitForNodes.swift @@ -2,7 +2,7 @@ import XXClient import XCTestDynamicOverlay public struct MessengerWaitForNodes { - public typealias Progress = (Double) -> Void + public typealias Progress = (NodeRegistrationReport) -> Void public enum Error: Swift.Error { case notLoaded @@ -28,19 +28,15 @@ extension MessengerWaitForNodes { throw Error.notLoaded } - func getProgress(_ report: NodeRegistrationReport) -> Double { - min(1, ((report.ratio / targetRatio) * 100).rounded() / 100) - } - var report = try cMix.getNodeRegistrationStatus() var retries = retries - onProgress(getProgress(report)) + onProgress(report) while report.ratio < targetRatio && retries > 0 { env.sleep(sleepMS) - retries -= 1 report = try cMix.getNodeRegistrationStatus() - onProgress(getProgress(report)) + retries -= 1 + onProgress(report) } if report.ratio < targetRatio { diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift index 3154758f..ba1fd941 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerWaitForNodesTests.swift @@ -18,7 +18,7 @@ final class MessengerWaitForNodesTests: XCTestCase { } func testWaitWhenHasTargetRatio() throws { - var didProgress: [Double] = [] + var didProgress: [NodeRegistrationReport] = [] var env: MessengerEnvironment = .unimplemented env.ctx.getCMix = { @@ -37,12 +37,14 @@ final class MessengerWaitForNodesTests: XCTestCase { onProgress: { didProgress.append($0) } ) - XCTAssertNoDifference(didProgress, [1]) + XCTAssertNoDifference(didProgress, [ + NodeRegistrationReport(registered: 8, total: 10) + ]) } func testWaitForTargetRatio() throws { var didSleep: [Int] = [] - var didProgress: [Double] = [] + var didProgress: [NodeRegistrationReport] = [] var reports: [NodeRegistrationReport] = [ .init(registered: 0, total: 10), @@ -67,12 +69,16 @@ final class MessengerWaitForNodesTests: XCTestCase { ) XCTAssertNoDifference(didSleep, [123, 123]) - XCTAssertNoDifference(didProgress, [0, 0.43, 1]) + XCTAssertNoDifference(didProgress, [ + NodeRegistrationReport(registered: 0, total: 10), + NodeRegistrationReport(registered: 3, total: 10), + NodeRegistrationReport(registered: 8, total: 10), + ]) } func testWaitTimeout() { var didSleep: [Int] = [] - var didProgress: [Double] = [] + var didProgress: [NodeRegistrationReport] = [] var reports: [NodeRegistrationReport] = [ .init(registered: 0, total: 10), @@ -103,6 +109,11 @@ final class MessengerWaitForNodesTests: XCTestCase { } XCTAssertNoDifference(didSleep, [123, 123, 123]) - XCTAssertNoDifference(didProgress, [0, 0.43, 0.71, 0.86]) + XCTAssertNoDifference(didProgress, [ + NodeRegistrationReport(registered: 0, total: 10), + NodeRegistrationReport(registered: 3, total: 10), + NodeRegistrationReport(registered: 5, total: 10), + NodeRegistrationReport(registered: 6, total: 10), + ]) } } -- GitLab