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' },
    },
});
