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,
|
...options,
|
||||||
width: cols,
|
width: cols,
|
||||||
height: rows,
|
height: rows,
|
||||||
|
kittyKeyboard: Boolean(options.useKittyKeyboard),
|
||||||
...(recording
|
...(recording
|
||||||
? {
|
? {
|
||||||
stdout: recording as unknown as NodeJS.WriteStream,
|
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 () => {
|
test("clicks a target at relative coordinates through descendant text", async () => {
|
||||||
await Effect.runPromise(
|
await Effect.runPromise(
|
||||||
Effect.scoped(
|
Effect.scoped(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue