mirror of
https://github.com/hanzoai/bot.git
synced 2026-10-30 17:24:26 +00:00
Comprehensive rename of all openclaw references to hanzo-bot equivalents: - Package: openclaw → @hanzo/bot - Binary: openclaw → hanzo-bot - Types: OpenClaw* → Bot* - Env vars: OPENCLAW_* → BOT_* - Android: ai.openclaw.android → ai.hanzo.bot.android - iOS/macOS: ai.openclaw.* → ai.hanzo.* - Swift modules: OpenClaw* → Bot* - Plugins: openclaw.plugin.json → bot.plugin.json - Paths: .openclaw/ → .hanzo/bot/ - URLs: github.com/openclaw → github.com/hanzoai
125 lines
4.1 KiB
Swift
125 lines
4.1 KiB
Swift
import BotDiscovery
|
|
import Testing
|
|
|
|
@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 (HanzoBot)",
|
|
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-gateway",
|
|
local: local))
|
|
}
|
|
|
|
@Test func localGatewayMatchesServiceName() {
|
|
let local = GatewayDiscoveryModel.LocalIdentity(
|
|
hostTokens: ["studio"],
|
|
displayTokens: [])
|
|
#expect(GatewayDiscoveryModel.isLocalGateway(
|
|
lanHost: nil,
|
|
tailnetDns: nil,
|
|
displayName: nil,
|
|
serviceName: "studio-gateway",
|
|
local: local))
|
|
}
|
|
|
|
@Test func serviceNameDoesNotFalsePositiveOnSubstringHostToken() {
|
|
let local = GatewayDiscoveryModel.LocalIdentity(
|
|
hostTokens: ["steipete"],
|
|
displayTokens: [])
|
|
#expect(!GatewayDiscoveryModel.isLocalGateway(
|
|
lanHost: nil,
|
|
tailnetDns: nil,
|
|
displayName: nil,
|
|
serviceName: "steipetacstudio (HanzoBot)",
|
|
local: local))
|
|
#expect(GatewayDiscoveryModel.isLocalGateway(
|
|
lanHost: nil,
|
|
tailnetDns: nil,
|
|
displayName: nil,
|
|
serviceName: "steipete (HanzoBot)",
|
|
local: local))
|
|
}
|
|
|
|
@Test func parsesGatewayTXTFields() {
|
|
let parsed = GatewayDiscoveryModel.parseGatewayTXT([
|
|
"lanHost": " studio.local ",
|
|
"tailnetDns": " peters-mac-studio-1.ts.net ",
|
|
"sshPort": " 2222 ",
|
|
"gatewayPort": " 18799 ",
|
|
"cliPath": " /opt/hanzo-bot ",
|
|
])
|
|
#expect(parsed.lanHost == "studio.local")
|
|
#expect(parsed.tailnetDns == "peters-mac-studio-1.ts.net")
|
|
#expect(parsed.sshPort == 2222)
|
|
#expect(parsed.gatewayPort == 18799)
|
|
#expect(parsed.cliPath == "/opt/hanzo-bot")
|
|
}
|
|
|
|
@Test func parsesGatewayTXTDefaults() {
|
|
let parsed = GatewayDiscoveryModel.parseGatewayTXT([
|
|
"lanHost": " ",
|
|
"tailnetDns": "\n",
|
|
"gatewayPort": "nope",
|
|
"sshPort": "nope",
|
|
])
|
|
#expect(parsed.lanHost == nil)
|
|
#expect(parsed.tailnetDns == nil)
|
|
#expect(parsed.sshPort == 22)
|
|
#expect(parsed.gatewayPort == nil)
|
|
#expect(parsed.cliPath == nil)
|
|
}
|
|
|
|
@Test func buildsSSHTarget() {
|
|
#expect(GatewayDiscoveryModel.buildSSHTarget(
|
|
user: "peter",
|
|
host: "studio.local",
|
|
port: 22) == "[email protected]")
|
|
#expect(GatewayDiscoveryModel.buildSSHTarget(
|
|
user: "peter",
|
|
host: "studio.local",
|
|
port: 2201) == "[email protected]:2201")
|
|
}
|
|
}
|