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(
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.
\ No newline at end of file
......@@ -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)
......
......@@ -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
)])
......
......@@ -2,18 +2,12 @@ import Foundation
public struct BackupParams: Equatable {
public init(
username: String,
email: String?,
phone: String?
username: String
) {
self.username = username
self.email = email
self.phone = phone
}
public var username: String
public var email: String?
public var phone: String?
}
extension BackupParams: Codable {
......
......@@ -15,16 +15,11 @@ final class MessengerBackupParamsTests: XCTestCase {
return backup
}
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, [
String(data: try params.encode(), encoding: .utf8)!
String(data: try BackupParams.stub.encode(), encoding: .utf8)!
])
}
......@@ -32,9 +27,8 @@ final class MessengerBackupParamsTests: XCTestCase {
var env: MessengerEnvironment = .unimplemented
env.backup.get = { nil }
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(
error as NSError,
MessengerBackupParams.Error.notRunning as NSError
......@@ -50,9 +44,8 @@ final class MessengerBackupParamsTests: XCTestCase {
return backup
}
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(
error as NSError,
MessengerBackupParams.Error.notRunning as NSError
......
......@@ -10,11 +10,7 @@ final class MessengerRestoreBackupTests: XCTestCase {
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 backupParams = BackupParams.stub
let backupReport = BackupReport(
restoredContacts: backupContacts,
params: String(data: try! JSONEncoder().encode(backupParams), encoding: .utf8)!
......
......@@ -20,8 +20,6 @@ extension Message {
extension BackupParams {
static let stub = BackupParams(
username: "stub-username",
email: "stub-email",
phone: "stub-phone"
username: "stub-username"
)
}
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