Files
Ewald 85a82f130a test: migrate ui/tests from .mjs to .ts
- Rename 132 *.vitest.mjs -> *.vitest.ts
- Rename vitest.setup.mjs -> vitest.setup.ts
- Rename helpers/vitestEnvironment.mjs -> vitestEnvironment.ts
- Delete settings_store.test.mjs (Node test runner, superseded by .vitest.ts)
- Fix .mjs imports in vitest.setup.ts and grid_loader_adaptive_paging.vitest.ts

Config updates:
- vitest.config.mjs: setupFiles, include, coverage.include -> .ts
- tsconfig.test.json: new dedicated config for test files (strict:false)
- knip.json: update project pattern for tests
- package.json: add typecheck:tests script (audit-only)
2026-05-26 13:04:05 +02:00

60 lines
2.0 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
import { createPinia, setActivePinia } from "pinia";
import { createContextController } from "../features/panel/controllers/contextController.js";
import { usePanelStore } from "../stores/usePanelStore.js";
function createControl() {
return {
value: "",
checked: false,
classList: { toggle: vi.fn() },
};
}
describe("contextController", () => {
it("clears the search query through Pinia in pinia-only mode", async () => {
setActivePinia(createPinia());
const panelStore = usePanelStore();
panelStore.searchQuery = "cats";
const searchInputEl = createControl();
searchInputEl.value = "cats";
const reloadGrid = vi.fn(async () => ({}));
const controller = createContextController({
state: null,
gridContainer: { dataset: {} },
filterBtn: createControl(),
sortBtn: createControl(),
collectionsBtn: createControl(),
searchInputEl,
kindSelect: createControl(),
wfCheckbox: createControl(),
workflowTypeSelect: createControl(),
ratingSelect: createControl(),
minSizeInput: createControl(),
maxSizeInput: createControl(),
minWidthInput: createControl(),
minHeightInput: createControl(),
maxWidthInput: createControl(),
maxHeightInput: createControl(),
resolutionPresetSelect: createControl(),
dateRangeSelect: createControl(),
dateExactInput: createControl(),
sortController: {
setSortIcon: vi.fn(),
renderSortMenu: vi.fn(),
},
updateSummaryBar: vi.fn(),
reloadGrid,
});
await controller.actions.clearQuery();
expect(searchInputEl.value).toBe("");
expect(panelStore.searchQuery).toBe("");
expect(reloadGrid).toHaveBeenCalledTimes(1);
});
});