import ClawdbotKit import Network import Testing @testable import Clawdbot @Suite struct GatewayEndpointIDTests { @Test func stableIDForServiceDecodesAndNormalizesName() { let endpoint = NWEndpoint.service( name: "Clawdbot\\032Gateway \\032 Node\n", type: "_clawdbot-gw._tcp", domain: "local.", interface: nil) #expect(GatewayEndpointID.stableID(endpoint) == "_clawdbot-gw._tcp|local.|Clawdbot Gateway Node") } @Test func stableIDForNonServiceUsesEndpointDescription() { let endpoint = NWEndpoint.hostPort(host: NWEndpoint.Host("127.0.0.1"), port: 4242) #expect(GatewayEndpointID.stableID(endpoint) == String(describing: endpoint)) } @Test func prettyDescriptionDecodesBonjourEscapes() { let endpoint = NWEndpoint.service( name: "Clawdbot\\032Gateway", type: "_clawdbot-gw._tcp", domain: "local.", interface: nil) let pretty = GatewayEndpointID.prettyDescription(endpoint) #expect(pretty == BonjourEscapes.decode(String(describing: endpoint))) #expect(!pretty.localizedCaseInsensitiveContains("\\032")) } }