Something went wrong. Try again.
I'm going to build my own OpenClaw, with blackjack... and bun!
Something went wrong. Try again.
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778import { expect, test } from "bun:test";
import { buildVncWheelPointerEvents, computeContainedRemoteDisplayScale, encodeVncKeyEvent, encodeVncPointerEvent, mapClientToFramebufferPoint, normalizeVncPassword, resolveVncKeysymFromKeyboardEvent, vncButtonMaskForPointerButton,} from "../../web/src/panes/vnc-input.js";
test("encodeVncPointerEvent writes VNC pointer-event bytes", () => { expect(Array.from(encodeVncPointerEvent(5, 300, 400))).toEqual([ 5, 5, 0x01, 0x2c, 0x01, 0x90, ]);});
test("vncButtonMaskForPointerButton maps primary mouse buttons", () => { expect(vncButtonMaskForPointerButton(0)).toBe(1); expect(vncButtonMaskForPointerButton(1)).toBe(2); expect(vncButtonMaskForPointerButton(2)).toBe(4); expect(vncButtonMaskForPointerButton(5)).toBe(0);});
test("mapClientToFramebufferPoint maps scaled display coordinates into framebuffer space", () => { expect(mapClientToFramebufferPoint(150, 75, { left: 100, top: 50, width: 200, height: 100 }, 800, 400)) .toEqual({ x: 200, y: 100 }); expect(mapClientToFramebufferPoint(999, -20, { left: 100, top: 50, width: 200, height: 100 }, 800, 400)) .toEqual({ x: 799, y: 0 });});
test("buildVncWheelPointerEvents emits press+release events", () => { const [press, release] = buildVncWheelPointerEvents(-1, 10, 20, 1); expect(Array.from(press)).toEqual([5, 9, 0, 10, 0, 20]); expect(Array.from(release)).toEqual([5, 1, 0, 10, 0, 20]);});
test("encodeVncKeyEvent writes VNC key-event bytes", () => { expect(Array.from(encodeVncKeyEvent(true, 0xff0d))).toEqual([ 4, 1, 0, 0, 0, 0, 0xff, 0x0d, ]);});
test("resolveVncKeysymFromKeyboardEvent maps special keys and printable characters", () => { expect(resolveVncKeysymFromKeyboardEvent({ key: "Enter" })).toBe(0xff0d); expect(resolveVncKeysymFromKeyboardEvent({ key: "ArrowLeft" })).toBe(0xff51); expect(resolveVncKeysymFromKeyboardEvent({ key: "a" })).toBe(0x61); expect(resolveVncKeysymFromKeyboardEvent({ key: "é" })).toBe(0xe9); expect(resolveVncKeysymFromKeyboardEvent({ key: "😀" })).toBe((0x01000000 | 0x1f600) >>> 0); expect(resolveVncKeysymFromKeyboardEvent({ key: "Unidentified", code: "ShiftRight" })).toBe(0xffe2); expect(resolveVncKeysymFromKeyboardEvent({ key: "Dead" })).toBeNull();});
test("normalizeVncPassword treats empty strings as unset", () => { expect(normalizeVncPassword("")).toBeNull(); expect(normalizeVncPassword("secret")).toBe("secret"); expect(normalizeVncPassword(null)).toBeNull();});
test("computeContainedRemoteDisplayScale fits the framebuffer without integer snap", () => { expect(computeContainedRemoteDisplayScale(1000, 700, 800, 600)).toBeCloseTo(1.1666666, 5); expect(computeContainedRemoteDisplayScale(400, 300, 800, 600)).toBe(0.5);});