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

Remove db on account deletion

parent f7ff8b59
No related branches found
No related tags found
2 merge requests!102Release 1.0.0,!68Messenger example - send auth request
...@@ -36,7 +36,7 @@ extension AppEnvironment { ...@@ -36,7 +36,7 @@ extension AppEnvironment {
home: { home: {
HomeEnvironment( HomeEnvironment(
messenger: messenger, messenger: messenger,
db: dbManager.getDB, dbManager: dbManager,
mainQueue: mainQueue, mainQueue: mainQueue,
bgQueue: bgQueue, bgQueue: bgQueue,
register: { register: {
......
...@@ -71,14 +71,14 @@ public enum HomeAction: Equatable { ...@@ -71,14 +71,14 @@ public enum HomeAction: Equatable {
public struct HomeEnvironment { public struct HomeEnvironment {
public init( public init(
messenger: Messenger, messenger: Messenger,
db: DBManagerGetDB, dbManager: DBManager,
mainQueue: AnySchedulerOf<DispatchQueue>, mainQueue: AnySchedulerOf<DispatchQueue>,
bgQueue: AnySchedulerOf<DispatchQueue>, bgQueue: AnySchedulerOf<DispatchQueue>,
register: @escaping () -> RegisterEnvironment, register: @escaping () -> RegisterEnvironment,
userSearch: @escaping () -> UserSearchEnvironment userSearch: @escaping () -> UserSearchEnvironment
) { ) {
self.messenger = messenger self.messenger = messenger
self.db = db self.dbManager = dbManager
self.mainQueue = mainQueue self.mainQueue = mainQueue
self.bgQueue = bgQueue self.bgQueue = bgQueue
self.register = register self.register = register
...@@ -86,7 +86,7 @@ public struct HomeEnvironment { ...@@ -86,7 +86,7 @@ public struct HomeEnvironment {
} }
public var messenger: Messenger public var messenger: Messenger
public var db: DBManagerGetDB public var dbManager: DBManager
public var mainQueue: AnySchedulerOf<DispatchQueue> public var mainQueue: AnySchedulerOf<DispatchQueue>
public var bgQueue: AnySchedulerOf<DispatchQueue> public var bgQueue: AnySchedulerOf<DispatchQueue>
public var register: () -> RegisterEnvironment public var register: () -> RegisterEnvironment
...@@ -96,7 +96,7 @@ public struct HomeEnvironment { ...@@ -96,7 +96,7 @@ public struct HomeEnvironment {
extension HomeEnvironment { extension HomeEnvironment {
public static let unimplemented = HomeEnvironment( public static let unimplemented = HomeEnvironment(
messenger: .unimplemented, messenger: .unimplemented,
db: .unimplemented, dbManager: .unimplemented,
mainQueue: .unimplemented, mainQueue: .unimplemented,
bgQueue: .unimplemented, bgQueue: .unimplemented,
register: { .unimplemented }, register: { .unimplemented },
...@@ -197,13 +197,13 @@ public let homeReducer = Reducer<HomeState, HomeAction, HomeEnvironment> ...@@ -197,13 +197,13 @@ public let homeReducer = Reducer<HomeState, HomeAction, HomeEnvironment>
return .result { return .result {
do { do {
let contactId = try env.messenger.e2e.tryGet().getContact().getId() let contactId = try env.messenger.e2e.tryGet().getContact().getId()
let contact = try env.db().fetchContacts(.init(id: [contactId])).first let contact = try env.dbManager.getDB().fetchContacts(.init(id: [contactId])).first
if let username = contact?.username { if let username = contact?.username {
let ud = try env.messenger.ud.tryGet() let ud = try env.messenger.ud.tryGet()
try ud.permanentDeleteAccount(username: Fact(fact: username, type: 0)) try ud.permanentDeleteAccount(username: Fact(fact: username, type: 0))
} }
try env.messenger.destroy() try env.messenger.destroy()
try env.db().drop() try env.dbManager.removeDB()
return .success(.deleteAccount(.success)) return .success(.deleteAccount(.success))
} catch { } catch {
return .success(.deleteAccount(.failure(error as NSError))) return .success(.deleteAccount(.failure(error as NSError)))
......
...@@ -316,7 +316,7 @@ final class HomeFeatureTests: XCTestCase { ...@@ -316,7 +316,7 @@ final class HomeFeatureTests: XCTestCase {
var dbDidFetchContacts: [XXModels.Contact.Query] = [] var dbDidFetchContacts: [XXModels.Contact.Query] = []
var udDidPermanentDeleteAccount: [Fact] = [] var udDidPermanentDeleteAccount: [Fact] = []
var messengerDidDestroy = 0 var messengerDidDestroy = 0
var dbDidDrop = 0 var didRemoveDB = 0
store.environment.bgQueue = .immediate store.environment.bgQueue = .immediate
store.environment.mainQueue = .immediate store.environment.mainQueue = .immediate
...@@ -329,7 +329,7 @@ final class HomeFeatureTests: XCTestCase { ...@@ -329,7 +329,7 @@ final class HomeFeatureTests: XCTestCase {
} }
return e2e return e2e
} }
store.environment.db.run = { store.environment.dbManager.getDB.run = {
var db: Database = .failing var db: Database = .failing
db.fetchContacts.run = { query in db.fetchContacts.run = { query in
dbDidFetchContacts.append(query) dbDidFetchContacts.append(query)
...@@ -341,11 +341,11 @@ final class HomeFeatureTests: XCTestCase { ...@@ -341,11 +341,11 @@ final class HomeFeatureTests: XCTestCase {
) )
] ]
} }
db.drop.run = {
dbDidDrop += 1
}
return db return db
} }
store.environment.dbManager.removeDB.run = {
didRemoveDB += 1
}
store.environment.messenger.ud.get = { store.environment.messenger.ud.get = {
var ud: UserDiscovery = .unimplemented var ud: UserDiscovery = .unimplemented
ud.permanentDeleteAccount.run = { usernameFact in ud.permanentDeleteAccount.run = { usernameFact in
...@@ -372,7 +372,7 @@ final class HomeFeatureTests: XCTestCase { ...@@ -372,7 +372,7 @@ final class HomeFeatureTests: XCTestCase {
XCTAssertNoDifference(dbDidFetchContacts, [.init(id: ["contact-id".data(using: .utf8)!])]) XCTAssertNoDifference(dbDidFetchContacts, [.init(id: ["contact-id".data(using: .utf8)!])])
XCTAssertNoDifference(udDidPermanentDeleteAccount, [Fact(fact: "MyUsername", type: 0)]) XCTAssertNoDifference(udDidPermanentDeleteAccount, [Fact(fact: "MyUsername", type: 0)])
XCTAssertNoDifference(messengerDidDestroy, 1) XCTAssertNoDifference(messengerDidDestroy, 1)
XCTAssertNoDifference(dbDidDrop, 1) XCTAssertNoDifference(didRemoveDB, 1)
store.receive(.deleteAccount(.success)) { store.receive(.deleteAccount(.success)) {
$0.isDeletingAccount = false $0.isDeletingAccount = false
......
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