fix(rdp): handle right shift key input (#415)

This commit is contained in:
Kang committed 2026-08-12 13:52:15 +08:00
1 parent ce9ee89df8
commit cf249dcc73
1 file changed
+14 -1
+14 -1
View File
@@ -1,13 +1,26 @@
import { describe, expect, it } from "vitest";
import { mapKeyboardCodeToRdp } from "./rdpInput";
import { buildRdpKeyEvent, mapKeyboardCodeToRdp } from "./rdpInput";
describe("rdpInput", () => {
it("maps left and right modifiers distinctly", () => {
expect(mapKeyboardCodeToRdp("ShiftLeft")).toEqual({ scanCode: 0x2a });
expect(mapKeyboardCodeToRdp("ShiftRight")).toEqual({ scanCode: 0x36 });
expect(mapKeyboardCodeToRdp("ControlLeft")).toEqual({ scanCode: 0x1d });
expect(mapKeyboardCodeToRdp("ControlRight")).toEqual({ scanCode: 0x1d, extended: true });
expect(mapKeyboardCodeToRdp("AltRight")).toEqual({ scanCode: 0x38, extended: true });
});
it("sends right shift as a non-extended key event", () => {
const event = new KeyboardEvent("keydown", { code: "ShiftRight" });
expect(buildRdpKeyEvent(event, "key-down")).toEqual({
type: "key-down",
scanCode: 0x36,
extended: false,
repeat: false,
});
});
it("maps navigation keys as extended keys", () => {
expect(mapKeyboardCodeToRdp("Delete")).toEqual({ scanCode: 0x53, extended: true });
expect(mapKeyboardCodeToRdp("ArrowLeft")).toEqual({ scanCode: 0x4b, extended: true });