From 6894899b4a49c5a03b60edbdf3b0c1f5113e0f0b Mon Sep 17 00:00:00 2001
From: Dariusz Rybicki <dariusz@elixxir.io>
Date: Wed, 28 Sep 2022 20:01:55 +0200
Subject: [PATCH] Update example app

Restore facts from UD
---
 .../RestoreFeature/RestoreFeature.swift       |  5 +++--
 .../RestoreFeatureTests.swift                 | 21 ++++++++++++-------
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/Examples/xx-messenger/Sources/RestoreFeature/RestoreFeature.swift b/Examples/xx-messenger/Sources/RestoreFeature/RestoreFeature.swift
index d1872840..66d7df2f 100644
--- a/Examples/xx-messenger/Sources/RestoreFeature/RestoreFeature.swift
+++ b/Examples/xx-messenger/Sources/RestoreFeature/RestoreFeature.swift
@@ -132,11 +132,12 @@ public let restoreReducer = Reducer<RestoreState, RestoreAction, RestoreEnvironm
           backupData: backupData,
           backupPassphrase: backupPassphrase
         )
+        let facts = try env.messenger.ud.tryGet().getFacts()
         try env.db().saveContact(Contact(
           id: try env.messenger.e2e.tryGet().getContact().getId(),
           username: result.restoredParams.username,
-          email: result.restoredParams.email,
-          phone: result.restoredParams.phone,
+          email: facts.get(.email)?.value,
+          phone: facts.get(.phone)?.value,
           createdAt: env.now()
         ))
         return .success(.finished)
diff --git a/Examples/xx-messenger/Tests/RestoreFeatureTests/RestoreFeatureTests.swift b/Examples/xx-messenger/Tests/RestoreFeatureTests/RestoreFeatureTests.swift
index 4e55f78b..9b0a7b87 100644
--- a/Examples/xx-messenger/Tests/RestoreFeatureTests/RestoreFeatureTests.swift
+++ b/Examples/xx-messenger/Tests/RestoreFeatureTests/RestoreFeatureTests.swift
@@ -79,17 +79,18 @@ final class RestoreFeatureTests: XCTestCase {
   func testRestore() {
     let backupData = "backup-data".data(using: .utf8)!
     let backupPassphrase = "backup-passphrase"
+    let restoredFacts = [
+      Fact(type: .email, value: "restored-email"),
+      Fact(type: .phone, value: "restored-phone"),
+    ]
     let restoreResult = MessengerRestoreBackup.Result(
-      restoredParams: BackupParams.init(
-        username: "restored-username",
-        email: "restored-email",
-        phone: "restored-phone"
-      ),
+      restoredParams: BackupParams(username: "restored-username"),
       restoredContacts: []
     )
     let now = Date()
     let contactId = "contact-id".data(using: .utf8)!
 
+    var udFacts: [Fact] = []
     var didRestoreWithData: [Data] = []
     var didRestoreWithPassphrase: [String] = []
     var didSaveContact: [XXModels.Contact] = []
@@ -108,6 +109,7 @@ final class RestoreFeatureTests: XCTestCase {
     store.environment.messenger.restoreBackup.run = { data, passphrase in
       didRestoreWithData.append(data)
       didRestoreWithPassphrase.append(passphrase)
+      udFacts = restoredFacts
       return restoreResult
     }
     store.environment.messenger.e2e.get = {
@@ -119,6 +121,11 @@ final class RestoreFeatureTests: XCTestCase {
       }
       return e2e
     }
+    store.environment.messenger.ud.get = {
+      var ud: UserDiscovery = .unimplemented
+      ud.getFacts.run = { udFacts }
+      return ud
+    }
     store.environment.db.run = {
       var db: Database = .unimplemented
       db.saveContact.run = { contact in
@@ -141,8 +148,8 @@ final class RestoreFeatureTests: XCTestCase {
     XCTAssertNoDifference(didSaveContact, [Contact(
       id: contactId,
       username: restoreResult.restoredParams.username,
-      email: restoreResult.restoredParams.email,
-      phone: restoreResult.restoredParams.phone,
+      email: restoredFacts.get(.email)?.value,
+      phone: restoredFacts.get(.phone)?.value,
       createdAt: now
     )])
 
-- 
GitLab