From 637d1b4f8f46c408c382e11eba0029caf2c3cfbb Mon Sep 17 00:00:00 2001 From: Dariusz Rybicki <dariusz@elixxir.io> Date: Fri, 2 Sep 2022 19:27:48 +0200 Subject: [PATCH] Remove password in MessengerDestroy --- .../Functions/MessengerDestroy.swift | 1 + .../Functions/MessengerDestroyTests.swift | 32 +++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/Sources/XXMessengerClient/Messenger/Functions/MessengerDestroy.swift b/Sources/XXMessengerClient/Messenger/Functions/MessengerDestroy.swift index 1ea6f3d3..65a718df 100644 --- a/Sources/XXMessengerClient/Messenger/Functions/MessengerDestroy.swift +++ b/Sources/XXMessengerClient/Messenger/Functions/MessengerDestroy.swift @@ -23,6 +23,7 @@ extension MessengerDestroy { env.e2e.set(nil) env.cMix.set(nil) try env.fileManager.removeDirectory(env.storageDir) + try env.passwordStorage.remove() } } } diff --git a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerDestroyTests.swift b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerDestroyTests.swift index a91e3285..36745d02 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functions/MessengerDestroyTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functions/MessengerDestroyTests.swift @@ -13,6 +13,7 @@ final class MessengerDestroyTests: XCTestCase { var didSetUD: [UserDiscovery?] = [] var didSetE2E: [E2E?] = [] var didSetCMix: [CMix?] = [] + var didRemovePassword = 0 var env: MessengerEnvironment = .unimplemented env.cMix.get = { @@ -28,6 +29,7 @@ final class MessengerDestroyTests: XCTestCase { env.e2e.set = { didSetE2E.append($0) } env.cMix.set = { didSetCMix.append($0) } env.fileManager.removeDirectory = { didRemoveDirectory.append($0) } + env.passwordStorage.remove = { didRemovePassword += 1 } let destroy: MessengerDestroy = .live(env) try destroy() @@ -38,11 +40,13 @@ final class MessengerDestroyTests: XCTestCase { XCTAssertNoDifference(didSetE2E.map { $0 == nil }, [true]) XCTAssertNoDifference(didSetCMix.map { $0 == nil }, [true]) XCTAssertNoDifference(didRemoveDirectory, [storageDir]) + XCTAssertNoDifference(didRemovePassword, 1) } func testStopNetworkFollowerFailure() { struct Error: Swift.Error, Equatable {} let error = Error() + var env: MessengerEnvironment = .unimplemented env.cMix.get = { var cMix: CMix = .unimplemented @@ -79,4 +83,32 @@ final class MessengerDestroyTests: XCTestCase { XCTAssertNoDifference(didSetE2E.map { $0 == nil }, [true]) XCTAssertNoDifference(didSetCMix.map { $0 == nil }, [true]) } + + func testRemovePasswordFailure() { + struct Error: Swift.Error, Equatable {} + let error = Error() + let storageDir = "test-storage-dir" + var didRemoveDirectory: [String] = [] + var didSetUD: [UserDiscovery?] = [] + var didSetE2E: [E2E?] = [] + var didSetCMix: [CMix?] = [] + + var env: MessengerEnvironment = .unimplemented + env.cMix.get = { nil } + env.ud.set = { didSetUD.append($0) } + env.e2e.set = { didSetE2E.append($0) } + env.cMix.set = { didSetCMix.append($0) } + env.storageDir = storageDir + env.fileManager.removeDirectory = { didRemoveDirectory.append($0) } + env.passwordStorage.remove = { throw error } + let destroy: MessengerDestroy = .live(env) + + XCTAssertThrowsError(try destroy()) { err in + XCTAssertEqual(err as? Error, error) + } + XCTAssertNoDifference(didSetUD.map { $0 == nil }, [true]) + XCTAssertNoDifference(didSetE2E.map { $0 == nil }, [true]) + XCTAssertNoDifference(didSetCMix.map { $0 == nil }, [true]) + XCTAssertNoDifference(didRemoveDirectory, [storageDir]) + } } -- GitLab