oclaw/openclaw/apps/macos/Tests/OpenClawIPCTests/VoicePushToTalkHotkeyTests.swift
oliver dbbe3add6a 重构主控编排与运行时预热链路,统一工作区提示词/专家调度协议并补齐 wiki 记忆注入与写回闭环。
同时收敛启动与运维脚本默认行为(含 wiki worker)、更新 Admin 可观测性与相关测试,降低首轮时延并提高运行稳定性。

Made-with: Cursor
2026-04-26 08:34:33 +08:00

45 lines
1.3 KiB
Swift

import AppKit
import Testing
@testable import OpenClaw
@Suite(.serialized) struct VoicePushToTalkHotkeyTests {
actor Counter {
private(set) var began = 0
private(set) var ended = 0
func incBegin() {
self.began += 1
}
func incEnd() {
self.ended += 1
}
func snapshot() -> (began: Int, ended: Int) {
(self.began, self.ended)
}
}
@Test func `begin end fires once per hold`() async {
let counter = Counter()
let hotkey = VoicePushToTalkHotkey(
beginAction: { await counter.incBegin() },
endAction: { await counter.incEnd() })
await MainActor.run {
hotkey._testUpdateModifierState(keyCode: 61, modifierFlags: [.option])
hotkey._testUpdateModifierState(keyCode: 61, modifierFlags: [.option])
hotkey._testUpdateModifierState(keyCode: 61, modifierFlags: [])
}
for _ in 0..<50 {
let snap = await counter.snapshot()
if snap.began == 1, snap.ended == 1 { break }
try? await Task.sleep(nanoseconds: 10_000_000)
}
let snap = await counter.snapshot()
#expect(snap.began == 1)
#expect(snap.ended == 1)
}
}