Skip to content
Source
Sign inSign up

previewMiniPlayerStore.test.ts

34 lines1.1 KB

1import { scopeThreadRef } from "@t3tools/client-runtime/environment";
2import { type EnvironmentId, ThreadId } from "@t3tools/contracts";
3import { beforeEach, describe, expect, it } from "vite-plus/test";
4​
5import {
6 browserMiniPlayerSource,
7 selectThreadPreviewMiniPlayer,
8 usePreviewMiniPlayerStore,
9} from "./previewMiniPlayerStore";
10​
11const refA = scopeThreadRef("env-1" as EnvironmentId, ThreadId.make("thread-A"));
12const tabA = browserMiniPlayerSource("tab-a");
13const tabB = browserMiniPlayerSource("tab-b");
14​
15beforeEach(() => {
16 usePreviewMiniPlayerStore.setState({ byThreadKey: {} });
17});
18​
19describe("previewMiniPlayerStore", () => {
20 it("ignores stale drag updates after the floating tab changes", () => {
21 usePreviewMiniPlayerStore.getState().open(refA, tabA);
22 usePreviewMiniPlayerStore.getState().open(refA, tabB);
23 usePreviewMiniPlayerStore.getState().move(refA, "browser:tab-a", { x: 100, y: 100 });
24​
25 expect(
26 selectThreadPreviewMiniPlayer(usePreviewMiniPlayerStore.getState().byThreadKey, refA),
27 ).toEqual({
28 source: tabB,
29 position: null,
30 width: null,
31 lastInteraction: "drag",
32 });
33 });
34});