3x-ui/frontend/src/test/test-utils.tsx
MHSanaei 0b130d24ac
test(frontend): add React Testing Library + jsdom render-test harness
- vitest projects: node unit tests stay lean; new jsdom 'components' project runs *.test.tsx
- component setup: matchMedia/ResizeObserver/localStorage polyfills, react-i18next init, persian-calendar-suite stub (only used under jalali locale)
- smoke + field-label structure snapshots for Inbound & Outbound form modals
- establishes the regression net required before decomposing the oversized form modals
- 341 tests pass (337 unit + 4 component); typecheck/lint/build green
2026-05-30 15:51:49 +02:00

14 lines
448 B
TypeScript

import type { ReactElement } from 'react';
import { render } from '@testing-library/react';
import { ThemeProvider } from '@/hooks/useTheme';
export function renderWithProviders(ui: ReactElement) {
return render(<ThemeProvider>{ui}</ThemeProvider>);
}
export function fieldLabels(): string[] {
return Array.from(document.querySelectorAll('.ant-form-item-label label'))
.map((el) => (el.textContent ?? '').trim())
.filter(Boolean);
}