Skip to content
Source
Sign inSign up

settleAndAdvance.test.ts

24 lines896 Bytes

1import { scopeThreadRef } from "@t3tools/client-runtime/environment";
2import { EnvironmentId, ThreadId } from "@t3tools/contracts";
3import { describe, expect, it } from "vite-plus/test";
4​
5import { registerSettleAndAdvance, settleAndAdvance } from "./settleAndAdvance";
6​
7const threadRef = scopeThreadRef(
8 EnvironmentId.make("environment-local"),
9 ThreadId.make("thread-1"),
10);
11​
12describe("settleAndAdvance", () => {
13 it("keeps a remounted sidebar's handler when the old one unmounts late", () => {
14 const settledBy: string[] = [];
15 const unregisterOld = registerSettleAndAdvance(() => settledBy.push("old"));
16 const unregisterNew = registerSettleAndAdvance(() => settledBy.push("new"));
17 unregisterOld();
18​
19 expect(settleAndAdvance(threadRef)).toBe(true);
20 expect(settledBy).toEqual(["new"]);
21 unregisterNew();
22 expect(settleAndAdvance(threadRef)).toBe(false);
23 });
24});