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
No related branches found
No related tags found
2 merge requests!105Backup restoration fixes,!102Release 1.0.0
...@@ -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.
Finish editing this message first!
Please register or to comment