Scope test:run to the unit project only so it doesn't attempt to launch Playwright/Chromium (needed by the storybook browser project) in environments where browsers aren't installed. Add test:storybook script for running storybook stories explicitly when Playwright is available. https://claude.ai/code/session_01PqDTVMzP7dMtLpkn5Sw442 Co-authored-by: Claude <noreply@anthropic.com>
57 lines
1.5 KiB
TypeScript
57 lines
1.5 KiB
TypeScript
import { defineConfig } from 'vitest/config';
|
|
import react from '@vitejs/plugin-react';
|
|
import path from 'path';
|
|
import { fileURLToPath } from 'url';
|
|
import { storybookTest } from '@storybook/addon-vitest/vitest-plugin';
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
|
|
export default defineConfig({
|
|
plugins: [react()],
|
|
resolve: {
|
|
alias: [{
|
|
find: /^~\/database\/(.*)$/,
|
|
replacement: path.resolve(__dirname, './database/$1')
|
|
}, {
|
|
find: /^~\/server\/(.*)$/,
|
|
replacement: path.resolve(__dirname, './server/$1')
|
|
}, {
|
|
find: /^~\/(.*)$/,
|
|
replacement: path.resolve(__dirname, './app/$1')
|
|
}, {
|
|
find: /^@\/(.*)$/,
|
|
replacement: path.resolve(__dirname, './app/$1')
|
|
}, {
|
|
find: 'app',
|
|
replacement: path.resolve(__dirname, './app')
|
|
}]
|
|
},
|
|
test: {
|
|
coverage: {
|
|
provider: 'v8',
|
|
reporter: ['text', 'json', 'html'],
|
|
exclude: ['node_modules/', 'app/test/', '**/*.test.{ts,tsx}', '**/*.spec.{ts,tsx}', '**/types.ts']
|
|
},
|
|
projects: [{
|
|
extends: true,
|
|
test: {
|
|
name: 'unit',
|
|
globals: true,
|
|
environment: 'jsdom',
|
|
setupFiles: ['./app/test/setup.ts']
|
|
}
|
|
}, {
|
|
extends: true,
|
|
plugins: [storybookTest({ configDir: path.join(__dirname, '.storybook') })],
|
|
test: {
|
|
name: 'storybook',
|
|
browser: {
|
|
enabled: true,
|
|
headless: true,
|
|
provider: 'playwright',
|
|
instances: [{ browser: 'chromium' }]
|
|
}
|
|
}
|
|
}]
|
|
}
|
|
});
|