- 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)
60 lines
2.0 KiB
TypeScript
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);
|
|
});
|
|
});
|