import Testing @testable import OpenClaw @Suite struct SettingsNetworkingHelpersTests { @Test func diagnosticsIssuesNameEachReviewerVisibleCheck() { #expect( SettingsDiagnostics.issues( gatewayConnected: false, discoveredGatewayCount: 0, talkConfigLoaded: false, notificationStatusText: "Not Set") == [ .gatewayOffline, .discoveryUnavailable, .notificationsUnavailable, ]) } @Test func diagnosticsIssuesRequireTalkConfigOnlyAfterGatewayConnects() { #expect( SettingsDiagnostics.issues( gatewayConnected: true, discoveredGatewayCount: 1, talkConfigLoaded: false, notificationStatusText: "Allowed") == [.talkConfigMissing]) #expect( SettingsDiagnostics.issueCount( gatewayConnected: true, discoveredGatewayCount: 1, talkConfigLoaded: true, notificationStatusText: "Allowed") == 0) } @Test func parseHostPortParsesIPv4() { #expect(SettingsNetworkingHelpers.parseHostPort(from: "127.0.0.1:8080") == .init(host: "127.0.0.1", port: 8080)) } @Test func parseHostPortParsesHostnameAndTrims() { #expect(SettingsNetworkingHelpers.parseHostPort(from: " example.com:80 \n") == .init( host: "example.com", port: 80)) } @Test func parseHostPortParsesBracketedIPv6() { #expect( SettingsNetworkingHelpers.parseHostPort(from: "[2001:db8::1]:443") == .init(host: "2001:db8::1", port: 443)) } @Test func parseHostPortRejectsMissingPort() { #expect(SettingsNetworkingHelpers.parseHostPort(from: "example.com") == nil) #expect(SettingsNetworkingHelpers.parseHostPort(from: "[2001:db8::1]") == nil) } @Test func parseHostPortRejectsInvalidPort() { #expect(SettingsNetworkingHelpers.parseHostPort(from: "example.com:lol") == nil) #expect(SettingsNetworkingHelpers.parseHostPort(from: "[2001:db8::1]:lol") == nil) } @Test func httpURLStringFormatsIPv4AndPort() { #expect(SettingsNetworkingHelpers .httpURLString(host: "127.0.0.1", port: 8080, fallback: "fallback") == "http://127.0.0.1:8080") } @Test func httpURLStringBracketsIPv6() { #expect(SettingsNetworkingHelpers .httpURLString(host: "2001:db8::1", port: 8080, fallback: "fallback") == "http://[2001:db8::1]:8080") } @Test func httpURLStringLeavesAlreadyBracketedIPv6() { #expect(SettingsNetworkingHelpers .httpURLString(host: "[2001:db8::1]", port: 8080, fallback: "fallback") == "http://[2001:db8::1]:8080") } @Test func httpURLStringFallsBackWhenMissingHostOrPort() { #expect(SettingsNetworkingHelpers.httpURLString(host: nil, port: 80, fallback: "x") == "http://x") #expect(SettingsNetworkingHelpers.httpURLString(host: "example.com", port: nil, fallback: "y") == "http://y") } }