diff --git a/Examples/xx-messenger/Sources/RestoreFeature/RestoreFeature.swift b/Examples/xx-messenger/Sources/RestoreFeature/RestoreFeature.swift index d1872840470448de3dccfb2e9af2b2f4ad135324..66d7df2f0cb2ffc960270caad1aecf6c2da1100a 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 4e55f78bf14a04fe0aea7885f2f86d3783e6b04c..9b0a7b87928e8568acf78c8f63077920a8c9fd2e 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 )])