From 432214dd3f68d0ac62d9cf3037e72035cf0cd58f Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Thu, 29 Sep 2022 22:10:02 +0200
Subject: [PATCH] Update example app

---
 .../Sources/BackupFeature/BackupFeature.swift |  1 +
 .../BackupFeatureTests.swift                  | 23 ++++++++++++++-----
 2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift b/Examples/xx-messenger/Sources/BackupFeature/BackupFeature.swift
index e1ce8fb2..f672b312 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 ebb1510b..21afbd54 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) }
-- 
GitLab