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