| ... | ... | @@ -2,46 +2,15 @@ import { describe, expect, it, vi } from "vite-plus/test"; |
| 2 | 2 | import { EnvironmentId, ProjectId, ProviderInstanceId, ThreadId } from "@t3tools/contracts"; |
| 3 | 3 | import type { Thread } from "../types"; |
| 4 | 4 | import { |
| 5 | | browseInputEndPaddingClass, |
| 6 | 5 | buildBrowseGroups, |
| 7 | 6 | buildThreadActionItems, |
| 8 | 7 | enumerateCommandPaletteItems, |
| 9 | 8 | filterPinnedBrowseEntries, |
| 10 | 9 | filterCommandPaletteGroups, |
| 11 | | normalizeSearchText, |
| 12 | 10 | reduceCommandPaletteUiState, |
| 13 | 11 | type CommandPaletteGroup, |
| 14 | 12 | } from "./CommandPalette.logic"; |
| 15 | 13 | |
| 16 | | describe("browseInputEndPaddingClass", () => { |
| 17 | | it("reserves the widest space for the create action", () => { |
| 18 | | expect( |
| 19 | | browseInputEndPaddingClass({ |
| 20 | | willCreateProjectPath: true, |
| 21 | | hasHighlightedBrowseItem: false, |
| 22 | | }), |
| 23 | | ).toContain("pe-38"); |
| 24 | | }); |
| 25 | | |
| 26 | | it("reserves space for the wider highlighted-item shortcut", () => { |
| 27 | | expect( |
| 28 | | browseInputEndPaddingClass({ |
| 29 | | willCreateProjectPath: false, |
| 30 | | hasHighlightedBrowseItem: true, |
| 31 | | }), |
| 32 | | ).toContain("pe-30"); |
| 33 | | }); |
| 34 | | |
| 35 | | it("keeps the compact reserve for the normal add action", () => { |
| 36 | | expect( |
| 37 | | browseInputEndPaddingClass({ |
| 38 | | willCreateProjectPath: false, |
| 39 | | hasHighlightedBrowseItem: false, |
| 40 | | }), |
| 41 | | ).toContain("pe-24"); |
| 42 | | }); |
| 43 | | }); |
| 44 | | |
| 45 | 14 | describe("reduceCommandPaletteUiState", () => { |
| 46 | 15 | const closedState = { open: false, mode: "command", openIntent: null } as const; |
| 47 | 16 | |
| ... | ... | @@ -333,10 +302,33 @@ describe("buildThreadActionItems", () => { |
| 333 | 302 | }); |
| 334 | 303 | |
| 335 | 304 | it("normalizes case independently of the host locale", () => { |
| 336 | | const localeLowerCase = vi.spyOn(String.prototype, "toLocaleLowerCase").mockReturnValue("gıt"); |
| 305 | const toLocaleLowerCase = String.prototype.toLocaleLowerCase; |
| 306 | const localeLowerCase = vi |
| 307 | .spyOn(String.prototype, "toLocaleLowerCase") |
| 308 | .mockImplementation(function (this: string) { |
| 309 | return toLocaleLowerCase.call(this, "tr"); |
| 310 | }); |
| 337 | 311 | try { |
| 338 | | expect(normalizeSearchText("GIT")).toBe("git"); |
| 339 | | expect(localeLowerCase).not.toHaveBeenCalled(); |
| 312 | const groups = filterCommandPaletteGroups({ |
| 313 | activeGroups: [], |
| 314 | query: "GIT", |
| 315 | isInSubmenu: false, |
| 316 | projectSearchItems: [], |
| 317 | threadSearchItems: [], |
| 318 | settingsSearchItems: [ |
| 319 | { |
| 320 | kind: "action", |
| 321 | value: "setting:version-control", |
| 322 | title: "Version control", |
| 323 | searchTerms: ["git"], |
| 324 | icon: null, |
| 325 | run: async () => undefined, |
| 326 | }, |
| 327 | ], |
| 328 | }); |
| 329 | expect(groups.flatMap((group) => group.items.map((item) => item.value))).toEqual([ |
| 330 | "setting:version-control", |
| 331 | ]); |
| 340 | 332 | } finally { |
| 341 | 333 | localeLowerCase.mockRestore(); |
| 342 | 334 | } |