Files
MajoorWaldi-ComfyUI-Majoor-…/ui/tests/use_infinite_trigger.vitest.ts
T
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

49 lines
1.3 KiB
TypeScript

import { describe, expect, it, vi } from "vitest";
import { ref } from "vue";
import { useInfiniteTrigger } from "../vue/grid/useInfiniteTrigger.js";
describe("useInfiniteTrigger", () => {
it("loads only when enabled and allowed", async () => {
const enabled = ref(true);
const canLoad = ref(true);
const loadMore = vi.fn(async () => {});
const trigger = useInfiniteTrigger({
enabled,
canLoad,
loadMore,
});
await trigger.maybeLoad();
expect(loadMore).toHaveBeenCalledTimes(1);
enabled.value = false;
await trigger.maybeLoad();
expect(loadMore).toHaveBeenCalledTimes(1);
enabled.value = true;
canLoad.value = false;
await trigger.maybeLoad();
expect(loadMore).toHaveBeenCalledTimes(1);
});
it("coalesces concurrent load attempts", async () => {
let resolveLoad;
const loadMore = vi.fn(
() =>
new Promise((resolve) => {
resolveLoad = resolve;
}),
);
const trigger = useInfiniteTrigger({ loadMore });
const first = trigger.maybeLoad();
const second = trigger.maybeLoad();
expect(loadMore).toHaveBeenCalledTimes(1);
resolveLoad();
await first;
await second;
});
});