mirror of
https://github.com/anomalyco/opencode.git
synced 2026-08-01 06:13:32 +00:00
fix(simulation): mirror kitty keyboard protocol (#39741)
This commit is contained in:
parent
22d2012f75
commit
9abd9594de
2 changed files with 20 additions and 0 deletions
|
|
@ -41,6 +41,7 @@ export const create = Effect.fn("SimulationRenderer.create")(function* (
|
|||
...options,
|
||||
width: cols,
|
||||
height: rows,
|
||||
kittyKeyboard: Boolean(options.useKittyKeyboard),
|
||||
...(recording
|
||||
? {
|
||||
stdout: recording as unknown as NodeJS.WriteStream,
|
||||
|
|
|
|||
|
|
@ -43,6 +43,25 @@ test("normalizes named keys for OpenTUI", async () => {
|
|||
])
|
||||
})
|
||||
|
||||
test("headless input mirrors the configured kitty keyboard protocol", async () => {
|
||||
await Effect.runPromise(
|
||||
Effect.scoped(
|
||||
Effect.gen(function* () {
|
||||
const renderer = yield* SimulationRenderer.create({ useKittyKeyboard: {} })
|
||||
const harness = createHarness(renderer)
|
||||
let key: { readonly name: string; readonly source: string } | undefined
|
||||
renderer.keyInput.once("keypress", (event) => {
|
||||
key = event
|
||||
})
|
||||
|
||||
yield* execute(harness, { type: "ui.press", key: "escape" })
|
||||
|
||||
expect(key).toMatchObject({ name: "escape", source: "kitty" })
|
||||
}),
|
||||
),
|
||||
)
|
||||
})
|
||||
|
||||
test("clicks a target at relative coordinates through descendant text", async () => {
|
||||
await Effect.runPromise(
|
||||
Effect.scoped(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue