diff --git a/modules/Sources/Features/Root/RootInitialization.swift b/modules/Sources/Features/Root/RootInitialization.swift index 7e385ce..4d95e6e 100644 --- a/modules/Sources/Features/Root/RootInitialization.swift +++ b/modules/Sources/Features/Root/RootInitialization.swift @@ -42,11 +42,14 @@ extension RootReducer { state.appStartState = .didFinishLaunching // TODO: [#704], trigger the review request logic when approved by the team, // https://github.com/Electric-Coin-Company/zashi-ios/issues/704 - return .run { send in - try await mainQueue.sleep(for: .seconds(0.5)) - await send(.initialization(.initialSetups)) - } - .cancellable(id: DidFinishLaunchingId.timer, cancelInFlight: true) + return .concatenate( + Effect.send(.initialization(.configureCrashReporter)), + .run { send in + try await mainQueue.sleep(for: .seconds(0.5)) + await send(.initialization(.initialSetups)) + } + .cancellable(id: DidFinishLaunchingId.timer, cancelInFlight: true) + ) case .initialization(.appDelegate(.willEnterForeground)): state.appStartState = .willEnterForeground @@ -180,10 +183,7 @@ extension RootReducer { // TODO: [#524] finish all the wallet events according to definition, https://github.com/Electric-Coin-Company/zashi-ios/issues/524 LoggerProxy.event(".appDelegate(.didFinishLaunching)") /// We need to fetch data from keychain, in order to be 100% sure the keychain can be read we delay the check a bit - return .concatenate( - Effect.send(.initialization(.configureCrashReporter)), - Effect.send(.initialization(.checkWalletInitialization)) - ) + return Effect.send(.initialization(.checkWalletInitialization)) /// Evaluate the wallet's state based on keychain keys and database files presence case .initialization(.checkWalletInitialization): diff --git a/secantTests/RootTests/AppInitializationTests.swift b/secantTests/RootTests/AppInitializationTests.swift index 5163946..e3d613e 100644 --- a/secantTests/RootTests/AppInitializationTests.swift +++ b/secantTests/RootTests/AppInitializationTests.swift @@ -63,12 +63,12 @@ class AppInitializationTests: XCTestCase { await testQueue.advance(by: 0.02) + await store.receive(.initialization(.configureCrashReporter)) + await store.receive(.initialization(.initialSetups)) await testQueue.advance(by: 0.02) - await store.receive(.initialization(.configureCrashReporter)) - await store.receive(.initialization(.checkWalletInitialization)) await store.receive(.initialization(.respondToWalletInitializationState(.initialized))) @@ -137,12 +137,12 @@ class AppInitializationTests: XCTestCase { await testQueue.advance(by: 0.02) + await store.receive(.initialization(.configureCrashReporter)) + await store.receive(.initialization(.initialSetups)) await testQueue.advance(by: 0.02) - await store.receive(.initialization(.configureCrashReporter)) - await store.receive(.initialization(.checkWalletInitialization)) await store.receive(.initialization(.respondToWalletInitializationState(.initialized))) @@ -195,10 +195,10 @@ class AppInitializationTests: XCTestCase { state.appStartState = .didFinishLaunching } - await store.receive(.initialization(.initialSetups)) - await store.receive(.initialization(.configureCrashReporter)) + await store.receive(.initialization(.initialSetups)) + await store.receive(.initialization(.checkWalletInitialization)) await store.receive(.initialization(.respondToWalletInitializationState(.keysMissing))) { state in @@ -229,10 +229,10 @@ class AppInitializationTests: XCTestCase { state.appStartState = .didFinishLaunching } - await store.receive(.initialization(.initialSetups)) - await store.receive(.initialization(.configureCrashReporter)) + await store.receive(.initialization(.initialSetups)) + await store.receive(.initialization(.checkWalletInitialization)) await store.receive(.initialization(.respondToWalletInitializationState(.uninitialized)))