Skip to content
Snippets Groups Projects
Commit ea9300ef authored by Dariusz Rybicki's avatar Dariusz Rybicki
Browse files

Merge branch 'feature/remove-facts-from-backup-params' into 'development'

Remove facts from BackupParams

See merge request elixxir/elixxir-dapps-sdk-swift!108
parents c7727d9a 8f364437
No related branches found
No related tags found
2 merge requests!108Remove facts from BackupParams,!102Release 1.0.0
...@@ -148,7 +148,11 @@ let result = try messenger.restoreBackup( ...@@ -148,7 +148,11 @@ let result = try messenger.restoreBackup(
backupPassphrase: "backup-passphrase" backupPassphrase: "backup-passphrase"
) )
// handle restoration result // handle restoration result:
let restoredUsername = result.restoredParams.username
let facts = try messenger.ud.tryGet().getFacts()
let restoredEmail = facts.get(.email)?.value
let restoredPhone = facts.get(.phone)?.value
``` ```
If no error was thrown during restoration, the `Messenger` is already loaded, started, connected, and logged in. If no error was thrown during restoration, the `Messenger` is already loaded, started, connected, and logged in.
\ No newline at end of file
...@@ -132,11 +132,12 @@ public let restoreReducer = Reducer<RestoreState, RestoreAction, RestoreEnvironm ...@@ -132,11 +132,12 @@ public let restoreReducer = Reducer<RestoreState, RestoreAction, RestoreEnvironm
backupData: backupData, backupData: backupData,
backupPassphrase: backupPassphrase backupPassphrase: backupPassphrase
) )
let facts = try env.messenger.ud.tryGet().getFacts()
try env.db().saveContact(Contact( try env.db().saveContact(Contact(
id: try env.messenger.e2e.tryGet().getContact().getId(), id: try env.messenger.e2e.tryGet().getContact().getId(),
username: result.restoredParams.username, username: result.restoredParams.username,
email: result.restoredParams.email, email: facts.get(.email)?.value,
phone: result.restoredParams.phone, phone: facts.get(.phone)?.value,
createdAt: env.now() createdAt: env.now()
)) ))
return .success(.finished) return .success(.finished)
......
...@@ -79,17 +79,18 @@ final class RestoreFeatureTests: XCTestCase { ...@@ -79,17 +79,18 @@ final class RestoreFeatureTests: XCTestCase {
func testRestore() { func testRestore() {
let backupData = "backup-data".data(using: .utf8)! let backupData = "backup-data".data(using: .utf8)!
let backupPassphrase = "backup-passphrase" let backupPassphrase = "backup-passphrase"
let restoredFacts = [
Fact(type: .email, value: "restored-email"),
Fact(type: .phone, value: "restored-phone"),
]
let restoreResult = MessengerRestoreBackup.Result( let restoreResult = MessengerRestoreBackup.Result(
restoredParams: BackupParams.init( restoredParams: BackupParams(username: "restored-username"),
username: "restored-username",
email: "restored-email",
phone: "restored-phone"
),
restoredContacts: [] restoredContacts: []
) )
let now = Date() let now = Date()
let contactId = "contact-id".data(using: .utf8)! let contactId = "contact-id".data(using: .utf8)!
var udFacts: [Fact] = []
var didRestoreWithData: [Data] = [] var didRestoreWithData: [Data] = []
var didRestoreWithPassphrase: [String] = [] var didRestoreWithPassphrase: [String] = []
var didSaveContact: [XXModels.Contact] = [] var didSaveContact: [XXModels.Contact] = []
...@@ -108,6 +109,7 @@ final class RestoreFeatureTests: XCTestCase { ...@@ -108,6 +109,7 @@ final class RestoreFeatureTests: XCTestCase {
store.environment.messenger.restoreBackup.run = { data, passphrase in store.environment.messenger.restoreBackup.run = { data, passphrase in
didRestoreWithData.append(data) didRestoreWithData.append(data)
didRestoreWithPassphrase.append(passphrase) didRestoreWithPassphrase.append(passphrase)
udFacts = restoredFacts
return restoreResult return restoreResult
} }
store.environment.messenger.e2e.get = { store.environment.messenger.e2e.get = {
...@@ -119,6 +121,11 @@ final class RestoreFeatureTests: XCTestCase { ...@@ -119,6 +121,11 @@ final class RestoreFeatureTests: XCTestCase {
} }
return e2e return e2e
} }
store.environment.messenger.ud.get = {
var ud: UserDiscovery = .unimplemented
ud.getFacts.run = { udFacts }
return ud
}
store.environment.db.run = { store.environment.db.run = {
var db: Database = .unimplemented var db: Database = .unimplemented
db.saveContact.run = { contact in db.saveContact.run = { contact in
...@@ -141,8 +148,8 @@ final class RestoreFeatureTests: XCTestCase { ...@@ -141,8 +148,8 @@ final class RestoreFeatureTests: XCTestCase {
XCTAssertNoDifference(didSaveContact, [Contact( XCTAssertNoDifference(didSaveContact, [Contact(
id: contactId, id: contactId,
username: restoreResult.restoredParams.username, username: restoreResult.restoredParams.username,
email: restoreResult.restoredParams.email, email: restoredFacts.get(.email)?.value,
phone: restoreResult.restoredParams.phone, phone: restoredFacts.get(.phone)?.value,
createdAt: now createdAt: now
)]) )])
......
...@@ -2,18 +2,12 @@ import Foundation ...@@ -2,18 +2,12 @@ import Foundation
public struct BackupParams: Equatable { public struct BackupParams: Equatable {
public init( public init(
username: String, username: String
email: String?,
phone: String?
) { ) {
self.username = username self.username = username
self.email = email
self.phone = phone
} }
public var username: String public var username: String
public var email: String?
public var phone: String?
} }
extension BackupParams: Codable { extension BackupParams: Codable {
......
...@@ -15,16 +15,11 @@ final class MessengerBackupParamsTests: XCTestCase { ...@@ -15,16 +15,11 @@ final class MessengerBackupParamsTests: XCTestCase {
return backup return backup
} }
let backup: MessengerBackupParams = .live(env) let backup: MessengerBackupParams = .live(env)
let params = BackupParams(
username: "test-username",
email: "test-email",
phone: "test-phone"
)
try backup(params) try backup(.stub)
XCTAssertNoDifference(didAddJSON, [ XCTAssertNoDifference(didAddJSON, [
String(data: try params.encode(), encoding: .utf8)! String(data: try BackupParams.stub.encode(), encoding: .utf8)!
]) ])
} }
...@@ -32,9 +27,8 @@ final class MessengerBackupParamsTests: XCTestCase { ...@@ -32,9 +27,8 @@ final class MessengerBackupParamsTests: XCTestCase {
var env: MessengerEnvironment = .unimplemented var env: MessengerEnvironment = .unimplemented
env.backup.get = { nil } env.backup.get = { nil }
let backup: MessengerBackupParams = .live(env) let backup: MessengerBackupParams = .live(env)
let params = BackupParams(username: "test", email: nil, phone: nil)
XCTAssertThrowsError(try backup(params)) { error in XCTAssertThrowsError(try backup(.stub)) { error in
XCTAssertNoDifference( XCTAssertNoDifference(
error as NSError, error as NSError,
MessengerBackupParams.Error.notRunning as NSError MessengerBackupParams.Error.notRunning as NSError
...@@ -50,9 +44,8 @@ final class MessengerBackupParamsTests: XCTestCase { ...@@ -50,9 +44,8 @@ final class MessengerBackupParamsTests: XCTestCase {
return backup return backup
} }
let backup: MessengerBackupParams = .live(env) let backup: MessengerBackupParams = .live(env)
let params = BackupParams(username: "test", email: nil, phone: nil)
XCTAssertThrowsError(try backup(params)) { error in XCTAssertThrowsError(try backup(.stub)) { error in
XCTAssertNoDifference( XCTAssertNoDifference(
error as NSError, error as NSError,
MessengerBackupParams.Error.notRunning as NSError MessengerBackupParams.Error.notRunning as NSError
......
...@@ -10,11 +10,7 @@ final class MessengerRestoreBackupTests: XCTestCase { ...@@ -10,11 +10,7 @@ final class MessengerRestoreBackupTests: XCTestCase {
let ndfData = "ndf-data".data(using: .utf8)! let ndfData = "ndf-data".data(using: .utf8)!
let password = "password".data(using: .utf8)! let password = "password".data(using: .utf8)!
let backupContacts: [Data] = (1...3).map { "contact-\($0)" }.map { $0.data(using: .utf8)! } let backupContacts: [Data] = (1...3).map { "contact-\($0)" }.map { $0.data(using: .utf8)! }
let backupParams = BackupParams( let backupParams = BackupParams.stub
username: "backup-username",
email: "backup-email",
phone: "backup-phone"
)
let backupReport = BackupReport( let backupReport = BackupReport(
restoredContacts: backupContacts, restoredContacts: backupContacts,
params: String(data: try! JSONEncoder().encode(backupParams), encoding: .utf8)! params: String(data: try! JSONEncoder().encode(backupParams), encoding: .utf8)!
......
...@@ -20,8 +20,6 @@ extension Message { ...@@ -20,8 +20,6 @@ extension Message {
extension BackupParams { extension BackupParams {
static let stub = BackupParams( static let stub = BackupParams(
username: "stub-username", username: "stub-username"
email: "stub-email",
phone: "stub-phone"
) )
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment