Files
nobat724_front/vitest.config.mjs
T
hamed c316d22160 feat: add testing setup with Vitest and Testing Library
- Updated package.json to include Vitest and Testing Library dependencies and scripts for testing.
- Created a test suite for the ProvinceProvider context to validate cityId and province detection based on subdomains.
- Implemented unit tests for utility functions in helper/index.js, including phone number formatting and validation.
- Added tests for state information retrieval in lib/getStateInfo.js, ensuring correct city and state matching based on subdomains.
- Developed tests for appointment slot adaptation and availability checks in lib/appointmentSlots.js.
- Created tests for token storage functionality in lib/tokenStore.js.
- Implemented sanitization and JSON parsing tests in lib/sanitize.js.
- Added CASL ability tests in lib/ability.js to verify user access rights.
- Created tests for cookie management in lib/refreshCookie.js.
- Developed tests for patient user representation in lib/representationAdapters.js.
- Implemented client-side state information retrieval tests in lib/getStateInfoClient.js.
- Created tests for canonical URL generation in lib/getCanonicalUrl.js.
- Developed tests for clinic API service functions in services/clinicApi.js.
- Added request wrapper tests in services/response.js to ensure correct API interaction.
- Set up Vitest configuration in vitest.config.mjs for JSX support and alias resolution.
- Created setup and utility files for testing environment in test/setup.js and test/utils.jsx.
2026-06-28 23:25:46 +03:30

32 lines
1.1 KiB
JavaScript

import { defineConfig } from 'vitest/config';
import { fileURLToPath } from 'node:url';
// پروژه از .js برای فایل‌های حاوی JSX استفاده می‌کند (الگوی Next).
// esbuild را وادار می‌کنیم .js را با loader=jsx و runtime خودکار پردازش کند،
// و همین loader را در dep-optimizer هم ست می‌کنیم تا import-analysis نشکند.
export default defineConfig({
resolve: {
alias: { '@': fileURLToPath(new URL('.', import.meta.url)) },
},
esbuild: {
loader: 'jsx',
include: /\.(jsx?|tsx?)(\?.*)?$/,
exclude: [],
jsx: 'automatic',
},
optimizeDeps: {
esbuildOptions: { loader: { '.js': 'jsx' } },
},
test: {
environment: 'jsdom',
globals: true,
setupFiles: ['./test/setup.js'],
include: ['**/*.{test,spec}.{js,jsx}'],
exclude: ['node_modules', '.next', 'e2e'],
css: false,
clearMocks: true,
restoreMocks: true,
env: { NEXT_PUBLIC_API_URL: 'http://api.test.local' },
},
});