-
Dariusz Rybicki authoredDariusz Rybicki authored
MessengerDestroy.swift 829 B
import XCTestDynamicOverlay
public struct MessengerDestroy {
public var run: () throws -> Void
public func callAsFunction() throws -> Void {
try run()
}
}
extension MessengerDestroy {
public static func live(_ env: MessengerEnvironment) -> MessengerDestroy {
MessengerDestroy {
if let cMix = env.cMix() {
if cMix.networkFollowerStatus() == .running {
try cMix.stopNetworkFollower()
}
while cMix.hasRunningProcesses() {
env.sleep(1)
}
}
env.ud.set(nil)
env.e2e.set(nil)
env.cMix.set(nil)
try env.fileManager.removeDirectory(env.storageDir)
try env.passwordStorage.remove()
}
}
}
extension MessengerDestroy {
public static let unimplemented = MessengerDestroy(
run: XCTUnimplemented("\(Self.self)")
)
}