| @@ -2,46 +2,15 @@ import { describe, expect, it, vi } from "vite-plus/test"; · 1 unmodified line |
| 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", () => { · 285 unmodified lines |
| 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 | } |