add all keyboard langs to backstage + fix test

This commit is contained in:
KingKDot
2026-07-30 14:59:00 -05:00
parent 91e9b3196a
commit 7369aa7014
10 changed files with 132 additions and 21 deletions
@@ -418,6 +418,34 @@ describe("remote desktop viewer control", () => {
});
describe("backstage viewer control", () => {
test("forwards browser-resolved Unicode text with backstage key presses", () => {
const clientId = `backstage-unicode-${Date.now().toString(36)}`;
const { agentWs } = createClient(clientId);
const viewer = createMockWs({ role: "backstage_viewer", clientId });
handlebackstageViewerOpen(viewer as any);
backstageStreamingState.set(clientId, {
isStreaming: true,
virtualMode: false,
display: 0,
quality: 90,
codec: "",
maxFps: 120,
lastFps: 0,
});
handlebackstageViewerMessage(viewer as any, JSON.stringify({
type: "backstage_key_down",
key: "ж",
code: "KeyS",
text: "ж",
}));
const command = agentCommands(agentWs)
.find((msg) => msg.commandType === "backstage_key_down");
expect(command?.payload).toEqual({ key: "ж", code: "KeyS", text: "ж" });
});
test("forwards backstage_stop even when server stream state is stale", () => {
const clientId = `backstage-stale-stop-${Date.now().toString(36)}`;
const { agentWs } = createClient(clientId);
@@ -1392,7 +1392,11 @@ export function handlebackstageViewerMessage(ws: ServerWebSocket<SocketData>, ra
if (state.isStreaming) sendbackstageCommand(target, "backstage_mouse_wheel", { delta: Number(payload.delta) || 0, x: Number(payload.x) || 0, y: Number(payload.y) || 0 });
break;
case "backstage_key_down":
if (state.isStreaming) sendbackstageCommand(target, "backstage_key_down", { key: payload.key || "", code: payload.code || "" });
if (state.isStreaming) sendbackstageCommand(target, "backstage_key_down", {
key: String(payload.key || ""),
code: String(payload.code || ""),
text: String(payload.text || ""),
});
break;
case "backstage_key_up":
if (state.isStreaming) sendbackstageCommand(target, "backstage_key_up", { key: payload.key || "", code: payload.code || "" });