Skip to content
Source
Sign inSign up

threadDetailsItems.test.ts

36 lines1.5 KB

1import { describe, expect, it } from "vite-plus/test";
2​
3import {
4 resolveThreadDetailsVisibility,
5 setThreadDetailsItem,
6 THREAD_DETAILS_ITEMS,
7} from "./threadDetailsItems";
8​
9const usage = THREAD_DETAILS_ITEMS.find((item) => item.id === "usage")!;
10const servers = THREAD_DETAILS_ITEMS.find((item) => item.id === "servers")!;
11​
12describe("thread details items", () => {
13 it.each([
14 { legacy: false, items: {}, usage: false, context: false },
15 { legacy: true, items: {}, usage: true, context: true },
16 { legacy: true, items: { usage: false }, usage: false, context: true },
17 { legacy: false, items: { usage: true, retired: false }, usage: true, context: false },
18 ])("resolves Usage and Context from overrides and the retired Labs flag: %o", (row) => {
19 const visibility = resolveThreadDetailsVisibility({
20 threadDetailsItems: row.items,
21 threadDetailsUsageEnabled: row.legacy,
22 });
23 expect(visibility.usage).toBe(row.usage);
24 expect(visibility.context).toBe(row.context);
25 expect(visibility.servers).toBe(true);
26 });
27​
28 it("stores only choices that differ from the default", () => {
29 const legacyOn = { threadDetailsItems: {}, threadDetailsUsageEnabled: true };
30 expect(setThreadDetailsItem(legacyOn, usage, false)).toEqual({ usage: false });
31 expect(setThreadDetailsItem(legacyOn, usage, true)).toEqual({});
32​
33 const hidden = { threadDetailsItems: { servers: false }, threadDetailsUsageEnabled: false };
34 expect(setThreadDetailsItem(hidden, servers, true)).toEqual({});
35 });
36});