test: add frontend testing infrastructure with vitest
- Introduce Vitest + React Testing Library + jsdom environment - Add useDragSort hook unit tests covering: * Sorting logic (sortIndex → createdAt → name) * Successful drag operation (API call + cache invalidation) * Failed drag operation (error toast display) * Edge case (no valid target, no API call) - Configure global test setup (i18n mock, auto cleanup) - Update TypeScript configs to include tests/ directory - Add test development plan documentation Test Coverage: ✓ Provider drag-and-drop sorting core logic ✓ React Query cache refresh ✓ Toast notification display ✓ Boundary condition handling Test Results: 4/4 passed (671ms) Next Steps: Sprint 2 - component tests with MSW mock layer
This commit is contained in:
23
tests/setupTests.ts
Normal file
23
tests/setupTests.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import "@testing-library/jest-dom";
|
||||
import { afterEach, beforeAll } from "vitest";
|
||||
import { cleanup } from "@testing-library/react";
|
||||
import i18n from "i18next";
|
||||
import { initReactI18next } from "react-i18next";
|
||||
|
||||
beforeAll(async () => {
|
||||
await i18n.use(initReactI18next).init({
|
||||
lng: "zh",
|
||||
fallbackLng: "zh",
|
||||
resources: {
|
||||
zh: { translation: {} },
|
||||
en: { translation: {} },
|
||||
},
|
||||
interpolation: {
|
||||
escapeValue: false,
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
cleanup();
|
||||
});
|
||||
Reference in New Issue
Block a user