import Testing @testable import Clawdis @Suite @MainActor struct GatewayDiscoveryModelTests { @Test func localGatewayMatchesLanHost() { let local = GatewayDiscoveryModel.LocalIdentity( hostTokens: ["studio"], displayTokens: []) #expect(GatewayDiscoveryModel.isLocalGateway( lanHost: "studio.local", tailnetDns: nil, displayName: nil, serviceName: nil, local: local)) } @Test func localGatewayMatchesTailnetDns() { let local = GatewayDiscoveryModel.LocalIdentity( hostTokens: ["studio"], displayTokens: []) #expect(GatewayDiscoveryModel.isLocalGateway( lanHost: nil, tailnetDns: "studio.tailnet.example", displayName: nil, serviceName: nil, local: local)) } @Test func localGatewayMatchesDisplayName() { let local = GatewayDiscoveryModel.LocalIdentity( hostTokens: [], displayTokens: ["peter's mac studio"]) #expect(GatewayDiscoveryModel.isLocalGateway( lanHost: nil, tailnetDns: nil, displayName: "Peter's Mac Studio (Clawdis)", serviceName: nil, local: local)) } @Test func remoteGatewayDoesNotMatch() { let local = GatewayDiscoveryModel.LocalIdentity( hostTokens: ["studio"], displayTokens: ["peter's mac studio"]) #expect(!GatewayDiscoveryModel.isLocalGateway( lanHost: "other.local", tailnetDns: "other.tailnet.example", displayName: "Other Mac", serviceName: "other-bridge", local: local)) } @Test func localGatewayMatchesServiceName() { let local = GatewayDiscoveryModel.LocalIdentity( hostTokens: ["studio"], displayTokens: []) #expect(GatewayDiscoveryModel.isLocalGateway( lanHost: nil, tailnetDns: nil, displayName: nil, serviceName: "studio-bridge", local: local)) } }