diff --git a/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift b/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift index e1ce8fb201188ac101249d070dc96a75e4ca481a..f672b312a1867790a10ffb54f84cd683084a1b22 100644 --- a/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift +++ b/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift @@ -103,6 +103,7 @@ public let backupReducer = Reducer<BackupState, BackupAction, BackupEnvironment> case .task: state.isRunning = env.messenger.isBackupRunning() return Effect.run { subscriber in + subscriber.send(.backupUpdated(env.backupStorage.stored())) let cancellable = env.backupStorage.observe { backup in subscriber.send(.backupUpdated(backup)) } diff --git a/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift b/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift index ebb1510bc0c4f8a602db808931fe2c66ee5d3589..21afbd5409a40c956cce46cc40726996f741cb70 100644 --- a/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift +++ b/Examples/xx-messenger/Tests/BackupFeatureTests/BackupFeatureTests.swift @@ -9,6 +9,10 @@ final class BackupFeatureTests: XCTestCase { func testTask() { var isBackupRunning: [Bool] = [false] var observers: [UUID: BackupStorage.Observer] = [:] + let storedBackup = BackupStorage.Backup( + date: .init(timeIntervalSince1970: 1), + data: "stored".data(using: .utf8)! + ) let store = TestStore( initialState: BackupState(), @@ -20,6 +24,9 @@ final class BackupFeatureTests: XCTestCase { store.environment.messenger.isBackupRunning.run = { isBackupRunning.removeFirst() } + store.environment.backupStorage.stored = { + storedBackup + } store.environment.backupStorage.observe = { let id = UUID() observers[id] = $0 @@ -30,14 +37,18 @@ final class BackupFeatureTests: XCTestCase { XCTAssertNoDifference(observers.count, 1) - let backup = BackupStorage.Backup( - date: .init(timeIntervalSince1970: 1), - data: "backup".data(using: .utf8)! + store.receive(.backupUpdated(storedBackup)) { + $0.backup = storedBackup + } + + let observedBackup = BackupStorage.Backup( + date: .init(timeIntervalSince1970: 2), + data: "observed".data(using: .utf8)! ) - observers.values.forEach { $0(backup) } + observers.values.forEach { $0(observedBackup) } - store.receive(.backupUpdated(backup)) { - $0.backup = backup + store.receive(.backupUpdated(observedBackup)) { + $0.backup = observedBackup } observers.values.forEach { $0(nil) }