68 lines · 1.6 KB · TypeScript
RawDownload
import { beforeEach, describe, expect, it } from "vite-plus/test"; import { useBrowserPointerStore } from "./browserPointerStore"; beforeEach(() => {  useBrowserPointerStore.setState({ byTabId: {} });}); describe("browserPointerStore", () => {  it("tracks the latest pointer target independently for each tab", () => {    const store = useBrowserPointerStore.getState();    store.apply({      tabId: "tab_a",      phase: "move",      x: 20,      y: 30,      sequence: 0,      createdAt: "2026-06-12T00:00:00.000Z",    });    store.apply({      tabId: "tab_b",      phase: "move",      x: 40,      y: 50,      sequence: 1,      createdAt: "2026-06-12T00:00:01.000Z",    });    store.apply({      tabId: "tab_a",      phase: "click",      x: 60,      y: 70,      sequence: 2,      createdAt: "2026-06-12T00:00:02.000Z",    });     expect(useBrowserPointerStore.getState().byTabId).toMatchObject({      tab_a: { phase: "click", x: 60, y: 70, sequence: 2 },      tab_b: { phase: "move", x: 40, y: 50, sequence: 1 },    });  });   it("clears one tab without affecting the others", () => {    const store = useBrowserPointerStore.getState();    store.apply({      tabId: "tab_a",      phase: "move",      x: 20,      y: 30,      sequence: 0,      createdAt: "2026-06-12T00:00:00.000Z",    });    store.apply({      tabId: "tab_b",      phase: "move",      x: 40,      y: 50,      sequence: 1,      createdAt: "2026-06-12T00:00:01.000Z",    });     store.clear("tab_a");     expect(useBrowserPointerStore.getState().byTabId).toEqual({      tab_b: expect.objectContaining({ x: 40, y: 50 }),    });  });});