Canvas: fix A2UI click actions
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import AppKit
|
||||
import Testing
|
||||
@testable import Clawdis
|
||||
|
||||
@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 beginEndFiresOncePerHold() 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)
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,6 @@ import Testing
|
||||
#expect(opts.thinking == "low")
|
||||
#expect(opts.deliver == true)
|
||||
#expect(opts.to == nil)
|
||||
#expect(opts.channel == "last")
|
||||
#expect(opts.channel == .last)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user