From f8321d309bbe83a2bef3756497014cb2ce2686fa Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Wed, 21 Sep 2022 20:45:11 +0200 Subject: [PATCH] Add MessengerRestoreBackup.Result struct --- .../Functions/MessengerRestoreBackup.swift | 22 ++++++++++++++++--- .../MessengerRestoreBackupTests.swift | 8 +++++-- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift index 02b45c61..48a86f3e 100644 --- a/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift +++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerRestoreBackup.swift @@ -3,12 +3,25 @@ import XXClient import XCTestDynamicOverlay public struct MessengerRestoreBackup { - public var run: (Data, String) throws -> BackupParams + public struct Result: Equatable { + public init( + restoredParams: BackupParams, + restoredContacts: [Data] + ) { + self.restoredParams = restoredParams + self.restoredContacts = restoredContacts + } + + public var restoredParams: BackupParams + public var restoredContacts: [Data] + } + + public var run: (Data, String) throws -> Result public func callAsFunction( backupData: Data, backupPassphrase: String - ) throws -> BackupParams { + ) throws -> Result { try run(backupData, backupPassphrase) } } @@ -59,7 +72,10 @@ extension MessengerRestoreBackup { env.cMix.set(cMix) env.e2e.set(e2e) env.ud.set(ud) - return params + return Result( + restoredParams: params, + restoredContacts: report.restoredContacts + ) } catch { try? env.fileManager.removeDirectory(storageDir) throw error diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift index 28e6f204..05b4b26e 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerRestoreBackupTests.swift @@ -9,13 +9,14 @@ final class MessengerRestoreBackupTests: XCTestCase { let backupPassphrase = "backup-passphrase" let ndfData = "ndf-data".data(using: .utf8)! let password = "password".data(using: .utf8)! + let backupContacts: [Data] = (1...3).map { "contact-\($0)" }.map { $0.data(using: .utf8)! } let backupParams = BackupParams( username: "backup-username", email: "backup-email", phone: "backup-phone" ) let backupReport = BackupReport( - restoredContacts: [], + restoredContacts: backupContacts, params: String(data: try! JSONEncoder().encode(backupParams), encoding: .utf8)! ) let cMixParams = "cmix-params".data(using: .utf8)! @@ -152,7 +153,10 @@ final class MessengerRestoreBackupTests: XCTestCase { .didSetUD, ]) - XCTAssertNoDifference(result, backupParams) + XCTAssertNoDifference(result, MessengerRestoreBackup.Result( + restoredParams: backupParams, + restoredContacts: backupContacts + )) } func testDownloadNdfFailure() { -- GitLab