mirror of
https://github.com/webadderallorg/Recordly.git
synced 2026-11-09 07:23:14 +00:00
33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
import { beforeEach, expect, it, vi } from "vitest";
|
|
vi.mock("electron", () => ({ BrowserWindow: { getAllWindows: () => [] } }));
|
|
vi.mock("../paths/binaries", () => ({
|
|
ensureNativeCursorMonitorBinary: vi.fn(),
|
|
getCursorMonitorExePath: vi.fn(),
|
|
}));
|
|
vi.mock("./interaction", () => ({ recordCursorMouseDown: vi.fn(), recordCursorMouseUp: vi.fn() }));
|
|
import { recordCursorMouseDown, recordCursorMouseUp } from "./interaction";
|
|
import { setNativeCursorMonitorOutputBuffer } from "../state";
|
|
import { handleCursorMonitorStdout } from "./monitor";
|
|
|
|
beforeEach(() => {
|
|
vi.clearAllMocks();
|
|
setNativeCursorMonitorOutputBuffer("");
|
|
});
|
|
|
|
it("preserves left/right/middle button transitions across fragmented native output", () => {
|
|
handleCursorMonitorStdout(Buffer.from("INTERACTION:mousedown:1\nINTERACTION:mouse"));
|
|
handleCursorMonitorStdout(
|
|
Buffer.from(
|
|
"up:1\nINTERACTION:mousedown:2\nINTERACTION:mouseup:2\nINTERACTION:mousedown:3\nINTERACTION:mouseup:3\n",
|
|
),
|
|
);
|
|
expect(vi.mocked(recordCursorMouseDown).mock.calls).toEqual([[1], [2], [3]]);
|
|
expect(vi.mocked(recordCursorMouseUp).mock.calls).toEqual([[1], [2], [3]]);
|
|
});
|
|
|
|
it("retains compatibility with native helpers that omit button identity", () => {
|
|
handleCursorMonitorStdout(Buffer.from("INTERACTION:mousedown\nINTERACTION:mouseup\n"));
|
|
expect(recordCursorMouseDown).toHaveBeenCalledWith(1);
|
|
expect(recordCursorMouseUp).toHaveBeenCalledWith(undefined);
|
|
});
|