test(tui): isolate Windows Terminal backspace env coverage (#3220)

This commit is contained in:
myu003
2026-04-15 21:21:34 +08:00
committed by GitHub
parent 8a232acd28
commit 41b44cad24

View File

@@ -18,6 +18,19 @@ function withEnv(name: string, value: string | undefined, fn: () => void): void
}
}
function withEnvVars(vars: Record<string, string | undefined>, fn: () => void): void {
const entries = Object.entries(vars);
const run = (index: number): void => {
if (index >= entries.length) {
fn();
return;
}
const [name, value] = entries[index]!;
withEnv(name, value, () => run(index + 1));
};
run(0);
}
describe("matchesKey", () => {
describe("Kitty protocol with alternate keys (non-Latin layouts)", () => {
// Kitty protocol flag 4 (Report alternate keys) sends:
@@ -351,14 +364,40 @@ describe("matchesKey", () => {
});
});
it("should treat raw 0x08 as ctrl+backspace in Windows Terminal", () => {
it("should treat raw 0x08 as ctrl+backspace in local Windows Terminal", () => {
setKittyProtocolActive(false);
withEnv("WT_SESSION", "test-session", () => {
assert.strictEqual(matchesKey("\x08", "ctrl+backspace"), true);
assert.strictEqual(matchesKey("\x08", "backspace"), false);
assert.strictEqual(parseKey("\x08"), "ctrl+backspace");
assert.strictEqual(matchesKey("\x08", "ctrl+h"), true);
});
withEnvVars(
{
WT_SESSION: "test-session",
SSH_CONNECTION: undefined,
SSH_CLIENT: undefined,
SSH_TTY: undefined,
},
() => {
assert.strictEqual(matchesKey("\x08", "ctrl+backspace"), true);
assert.strictEqual(matchesKey("\x08", "backspace"), false);
assert.strictEqual(parseKey("\x08"), "ctrl+backspace");
assert.strictEqual(matchesKey("\x08", "ctrl+h"), true);
},
);
});
it("should treat raw 0x08 as plain backspace in Windows Terminal over SSH", () => {
setKittyProtocolActive(false);
withEnvVars(
{
WT_SESSION: "test-session",
SSH_CONNECTION: "1 2 3 4",
SSH_CLIENT: "1 2 3",
SSH_TTY: "/dev/pts/1",
},
() => {
assert.strictEqual(matchesKey("\x08", "ctrl+backspace"), false);
assert.strictEqual(matchesKey("\x08", "backspace"), true);
assert.strictEqual(parseKey("\x08"), "backspace");
assert.strictEqual(matchesKey("\x08", "ctrl+h"), true);
},
);
});
it("should parse legacy alt-prefixed sequences when kitty inactive", () => {