diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerDestroy.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerDestroy.swift index e584cf1ac3476cd1e6e7b0bdde49a84c0e96e918..51f6092321c0b08fb24729de3e30f55abba10318 100644 --- a/Sources/XXMessengerClient/Messenger/Functors/MessengerDestroy.swift +++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerDestroy.swift @@ -11,10 +11,10 @@ public struct MessengerDestroy { extension MessengerDestroy { public static func live(_ env: MessengerEnvironment) -> MessengerDestroy { MessengerDestroy { - try env.fileManager.removeDirectory(env.storageDir) env.ud.set(nil) env.e2e.set(nil) env.cMix.set(nil) + try env.fileManager.removeDirectory(env.storageDir) } } } diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerDestroyTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerDestroyTests.swift index 810214ca651e11048c92a6584389cb697326198e..cfe3f9a51f447c41cf94ae077c71a0b63f3639e3 100644 --- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerDestroyTests.swift +++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerDestroyTests.swift @@ -13,30 +13,39 @@ final class MessengerDestroyTests: XCTestCase { var env: MessengerEnvironment = .unimplemented env.storageDir = storageDir - env.fileManager.removeDirectory = { didRemoveDirectory.append($0) } env.ud.set = { didSetUD.append($0) } env.e2e.set = { didSetE2E.append($0) } env.cMix.set = { didSetCMix.append($0) } + env.fileManager.removeDirectory = { didRemoveDirectory.append($0) } let destroy: MessengerDestroy = .live(env) try destroy() - XCTAssertNoDifference(didRemoveDirectory, [storageDir]) XCTAssertNoDifference(didSetUD.map { $0 == nil }, [true]) XCTAssertNoDifference(didSetE2E.map { $0 == nil }, [true]) XCTAssertNoDifference(didSetCMix.map { $0 == nil }, [true]) + XCTAssertNoDifference(didRemoveDirectory, [storageDir]) } func testRemoveDirectoryFailure() { struct Error: Swift.Error, Equatable {} let error = Error() + var didSetUD: [UserDiscovery?] = [] + var didSetE2E: [E2E?] = [] + var didSetCMix: [CMix?] = [] var env: MessengerEnvironment = .unimplemented + env.ud.set = { didSetUD.append($0) } + env.e2e.set = { didSetE2E.append($0) } + env.cMix.set = { didSetCMix.append($0) } env.fileManager.removeDirectory = { _ in 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]) } }