Files
MajoorWaldi-ComfyUI-Majoor-…/js/tests/context_controller.vitest.mjs
T
MajoorWaldi 2fa41a0e76 feat: add useGridState and useVirtualGrid composables for asset management
- Implemented useGridState to manage grid state, including asset selection and loading states.
- Created useVirtualGrid to centralize virtualization helpers for improved performance.
- Added createVueApp for isolated Vue 3 + Pinia application instances.
- Introduced Vite configuration for building the ComfyUI-Majoor-AssetsManager with external dependencies.
2026-04-03 11:04:55 +02:00

60 lines
2.0 KiB
JavaScript

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);
});
});