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

Destroy messenger when backup restoration fails

parent b215df5e
Branches
No related tags found
2 merge requests!105Backup restoration fixes,!102Release 1.0.0
This commit is part of merge request !105. Comments created here will be created in the context of that merge request.
...@@ -141,6 +141,7 @@ public let restoreReducer = Reducer<RestoreState, RestoreAction, RestoreEnvironm ...@@ -141,6 +141,7 @@ public let restoreReducer = Reducer<RestoreState, RestoreAction, RestoreEnvironm
)) ))
return .success(.finished) return .success(.finished)
} catch { } catch {
try? env.messenger.destroy()
return .success(.failed(error as NSError)) return .success(.failed(error as NSError))
} }
} }
......
...@@ -167,6 +167,8 @@ final class RestoreFeatureTests: XCTestCase { ...@@ -167,6 +167,8 @@ final class RestoreFeatureTests: XCTestCase {
struct Failure: Error {} struct Failure: Error {}
let failure = Failure() let failure = Failure()
var didDestroyMessenger = 0
let store = TestStore( let store = TestStore(
initialState: RestoreState( initialState: RestoreState(
file: .init(name: "name", data: "data".data(using: .utf8)!) file: .init(name: "name", data: "data".data(using: .utf8)!)
...@@ -178,11 +180,14 @@ final class RestoreFeatureTests: XCTestCase { ...@@ -178,11 +180,14 @@ final class RestoreFeatureTests: XCTestCase {
store.environment.bgQueue = .immediate store.environment.bgQueue = .immediate
store.environment.mainQueue = .immediate store.environment.mainQueue = .immediate
store.environment.messenger.restoreBackup.run = { _, _ in throw failure } store.environment.messenger.restoreBackup.run = { _, _ in throw failure }
store.environment.messenger.destroy.run = { didDestroyMessenger += 1 }
store.send(.restoreTapped) { store.send(.restoreTapped) {
$0.isRestoring = true $0.isRestoring = true
} }
XCTAssertEqual(didDestroyMessenger, 1)
store.receive(.failed(failure as NSError)) { store.receive(.failed(failure as NSError)) {
$0.isRestoring = false $0.isRestoring = false
$0.restoreFailure = failure.localizedDescription $0.restoreFailure = failure.localizedDescription
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment