import XXClient import XCTestDynamicOverlay public struct MessengerRegister { public enum Error: Swift.Error, Equatable { case notLoaded case notConnected } public var run: (String) throws -> Void public func callAsFunction( username: String ) throws { try run(username) } } extension MessengerRegister { public static func live(_ env: MessengerEnvironment) -> MessengerRegister { MessengerRegister { username in guard let cMix = env.cMix() else { throw Error.notLoaded } guard let e2e = env.e2e() else { throw Error.notConnected } env.ud.set(try env.newOrLoadUd( params: .init( e2eId: e2e.getId(), username: username, registrationValidationSignature: cMix.getReceptionRegistrationValidationSignature(), environment: env.udEnvironment ?? (try e2e.getUdEnvironmentFromNdf()) ), follower: .init { cMix.networkFollowerStatus() } )) } } } extension MessengerRegister { public static let unimplemented = MessengerRegister( run: XCTUnimplemented("\(Self.self)") ) }