- 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.
32 lines
1.1 KiB
JavaScript
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' },
|
|
},
|
|
});
|