Files
clawdbot/apps/macos/Tests/ClawdbotIPCTests/TailscaleIntegrationSectionTests.swift
2026-01-04 14:38:51 +00:00

49 lines
1.7 KiB
Swift

import SwiftUI
import Testing
@testable import Clawdbot
@Suite(.serialized)
@MainActor
struct TailscaleIntegrationSectionTests {
@Test func tailscaleSectionBuildsBodyWhenNotInstalled() {
let service = TailscaleService(isInstalled: false, isRunning: false, statusError: "not installed")
var view = TailscaleIntegrationSection(connectionMode: .local, isPaused: false)
view.setTestingService(service)
view.setTestingState(mode: "off", requireCredentials: false, statusMessage: "Idle")
_ = view.body
}
@Test func tailscaleSectionBuildsBodyForServeMode() {
let service = TailscaleService(
isInstalled: true,
isRunning: true,
tailscaleHostname: "clawdbot.tailnet.ts.net",
tailscaleIP: "100.64.0.1")
var view = TailscaleIntegrationSection(connectionMode: .local, isPaused: false)
view.setTestingService(service)
view.setTestingState(
mode: "serve",
requireCredentials: true,
password: "secret",
statusMessage: "Running")
_ = view.body
}
@Test func tailscaleSectionBuildsBodyForFunnelMode() {
let service = TailscaleService(
isInstalled: true,
isRunning: false,
tailscaleHostname: nil,
tailscaleIP: nil,
statusError: "not running")
var view = TailscaleIntegrationSection(connectionMode: .remote, isPaused: false)
view.setTestingService(service)
view.setTestingState(
mode: "funnel",
requireCredentials: false,
statusMessage: "Needs start",
validationMessage: "Invalid token")
_ = view.body
}
}