From 66377fc0309b8de084a816000b864f47c46f5de1 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 16 Jan 2026 07:58:30 +0000 Subject: [PATCH] fix: update macOS IPC tests --- .../Sources/Clawdbot/CronJobEditor+Helpers.swift | 12 +++++++++--- .../ConnectionsSettingsSmokeTests.swift | 1 + .../CronJobEditorSmokeTests.swift | 16 +++++----------- .../Tests/ClawdbotIPCTests/CronModelsTests.swift | 2 +- .../MacGatewayChatTransportMappingTests.swift | 3 ++- .../ClawdbotIPCTests/MacNodeRuntimeTests.swift | 4 ++++ .../OnboardingViewSmokeTests.swift | 4 ++-- .../SettingsViewSmokeTests.swift | 2 +- .../VoiceWakeForwarderTests.swift | 2 +- 9 files changed, 26 insertions(+), 20 deletions(-) diff --git a/apps/macos/Sources/Clawdbot/CronJobEditor+Helpers.swift b/apps/macos/Sources/Clawdbot/CronJobEditor+Helpers.swift index 5d8acf6a3..855aadf2c 100644 --- a/apps/macos/Sources/Clawdbot/CronJobEditor+Helpers.swift +++ b/apps/macos/Sources/Clawdbot/CronJobEditor+Helpers.swift @@ -188,9 +188,15 @@ extension CronJobEditor { } } - func applyDeleteAfterRun(to root: inout [String: Any]) { - if self.scheduleKind == .at { - root["deleteAfterRun"] = self.deleteAfterRun + func applyDeleteAfterRun( + to root: inout [String: Any], + scheduleKind: ScheduleKind? = nil, + deleteAfterRun: Bool? = nil + ) { + let resolvedSchedule = scheduleKind ?? self.scheduleKind + let resolvedDelete = deleteAfterRun ?? self.deleteAfterRun + if resolvedSchedule == .at { + root["deleteAfterRun"] = resolvedDelete } else if self.job?.deleteAfterRun != nil { root["deleteAfterRun"] = false } diff --git a/apps/macos/Tests/ClawdbotIPCTests/ConnectionsSettingsSmokeTests.swift b/apps/macos/Tests/ClawdbotIPCTests/ConnectionsSettingsSmokeTests.swift index e7778f9da..9bca297bd 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/ConnectionsSettingsSmokeTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/ConnectionsSettingsSmokeTests.swift @@ -1,3 +1,4 @@ +import ClawdbotProtocol import SwiftUI import Testing @testable import Clawdbot diff --git a/apps/macos/Tests/ClawdbotIPCTests/CronJobEditorSmokeTests.swift b/apps/macos/Tests/ClawdbotIPCTests/CronJobEditorSmokeTests.swift index b5c9034e5..02e8c1e69 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/CronJobEditorSmokeTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/CronJobEditorSmokeTests.swift @@ -38,7 +38,7 @@ struct CronJobEditorSmokeTests { thinking: "low", timeoutSeconds: 120, deliver: true, - provider: "whatsapp", + channel: "whatsapp", to: "+15551234567", bestEffortDeliver: true), isolation: CronIsolation(postToMainPrefix: "Cron"), @@ -70,22 +70,16 @@ struct CronJobEditorSmokeTests { } @Test func cronJobEditorIncludesDeleteAfterRunForAtSchedule() throws { - var view = CronJobEditor( + let view = CronJobEditor( job: nil, isSaving: .constant(false), error: .constant(nil), onCancel: {}, onSave: { _ in }) - view.name = "One-shot" - view.sessionTarget = .main - view.payloadKind = .systemEvent - view.systemEventText = "hello" - view.scheduleKind = .at - view.atDate = Date(timeIntervalSince1970: 1_700_000_000) - view.deleteAfterRun = true - let payload = try view.buildPayload() - let raw = payload["deleteAfterRun"]?.value as? Bool + var root: [String: Any] = [:] + view.applyDeleteAfterRun(to: &root, scheduleKind: .at, deleteAfterRun: true) + let raw = root["deleteAfterRun"] as? Bool #expect(raw == true) } } diff --git a/apps/macos/Tests/ClawdbotIPCTests/CronModelsTests.swift b/apps/macos/Tests/ClawdbotIPCTests/CronModelsTests.swift index 4862c28b2..a56a5b55a 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/CronModelsTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/CronModelsTests.swift @@ -31,7 +31,7 @@ struct CronModelsTests { thinking: "low", timeoutSeconds: 15, deliver: true, - provider: "whatsapp", + channel: "whatsapp", to: "+15551234567", bestEffortDeliver: false) let data = try JSONEncoder().encode(payload) diff --git a/apps/macos/Tests/ClawdbotIPCTests/MacGatewayChatTransportMappingTests.swift b/apps/macos/Tests/ClawdbotIPCTests/MacGatewayChatTransportMappingTests.swift index 186c9119f..00cff847b 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/MacGatewayChatTransportMappingTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/MacGatewayChatTransportMappingTests.swift @@ -11,7 +11,8 @@ import Testing stateversion: StateVersion(presence: 1, health: 1), uptimems: 123, configpath: nil, - statedir: nil) + statedir: nil, + sessiondefaults: nil) let hello = HelloOk( type: "hello", diff --git a/apps/macos/Tests/ClawdbotIPCTests/MacNodeRuntimeTests.swift b/apps/macos/Tests/ClawdbotIPCTests/MacNodeRuntimeTests.swift index 12d03c185..45943904c 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/MacNodeRuntimeTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/MacNodeRuntimeTests.swift @@ -74,6 +74,10 @@ struct MacNodeRuntimeTests { { CLLocation(latitude: 0, longitude: 0) } + + func confirmSystemRun(command: String, cwd: String?) async -> SystemRunDecision { + .allowOnce + } } let services = await MainActor.run { FakeMainActorServices() } diff --git a/apps/macos/Tests/ClawdbotIPCTests/OnboardingViewSmokeTests.swift b/apps/macos/Tests/ClawdbotIPCTests/OnboardingViewSmokeTests.swift index 37bc17c6f..38b877052 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/OnboardingViewSmokeTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/OnboardingViewSmokeTests.swift @@ -16,13 +16,13 @@ struct OnboardingViewSmokeTests { } @Test func pageOrderOmitsWorkspaceAndIdentitySteps() { - let order = OnboardingView.pageOrder(for: .local, needsBootstrap: false) + let order = OnboardingView.pageOrder(for: .local, showOnboardingChat: false) #expect(!order.contains(7)) #expect(order.contains(3)) } @Test func pageOrderOmitsOnboardingChatWhenIdentityKnown() { - let order = OnboardingView.pageOrder(for: .local, needsBootstrap: false) + let order = OnboardingView.pageOrder(for: .local, showOnboardingChat: false) #expect(!order.contains(8)) } } diff --git a/apps/macos/Tests/ClawdbotIPCTests/SettingsViewSmokeTests.swift b/apps/macos/Tests/ClawdbotIPCTests/SettingsViewSmokeTests.swift index 11747111d..dbb1b7bcb 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/SettingsViewSmokeTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/SettingsViewSmokeTests.swift @@ -49,7 +49,7 @@ struct SettingsViewSmokeTests { thinking: "low", timeoutSeconds: 30, deliver: true, - provider: "sms", + channel: "sms", to: "+15551234567", bestEffortDeliver: true), isolation: CronIsolation(postToMainPrefix: "[cron] "), diff --git a/apps/macos/Tests/ClawdbotIPCTests/VoiceWakeForwarderTests.swift b/apps/macos/Tests/ClawdbotIPCTests/VoiceWakeForwarderTests.swift index 35a96626b..b8318c3fe 100644 --- a/apps/macos/Tests/ClawdbotIPCTests/VoiceWakeForwarderTests.swift +++ b/apps/macos/Tests/ClawdbotIPCTests/VoiceWakeForwarderTests.swift @@ -17,6 +17,6 @@ import Testing #expect(opts.thinking == "low") #expect(opts.deliver == true) #expect(opts.to == nil) - #expect(opts.provider == .last) + #expect(opts.channel == .last) } }