62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
import { defineConfig, mergeConfig } from 'vitest/config'
|
|
import { storybookTest } from '@storybook/addon-vitest/vitest-plugin'
|
|
import { playwright } from '@vitest/browser-playwright'
|
|
import path from 'node:path'
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
const dirname =
|
|
typeof __dirname !== 'undefined'
|
|
? __dirname
|
|
: path.dirname(fileURLToPath(import.meta.url))
|
|
|
|
import viteConfig from './vite.config'
|
|
|
|
const isCI = process.env.CI === 'true'
|
|
|
|
const browserInstances = isCI
|
|
? [{ browser: 'chromium' as const }]
|
|
: [
|
|
{ browser: 'chromium' as const },
|
|
{ browser: 'firefox' as const },
|
|
{ browser: 'webkit' as const },
|
|
]
|
|
|
|
export default mergeConfig(
|
|
viteConfig,
|
|
defineConfig({
|
|
test: {
|
|
projects: [
|
|
{
|
|
test: {
|
|
name: 'unit',
|
|
environment: 'jsdom',
|
|
},
|
|
},
|
|
{
|
|
plugins: [
|
|
storybookTest({
|
|
// The location of your Storybook config, main.js|ts
|
|
configDir: path.join(dirname, '.storybook'),
|
|
// This should match your package.json script to run Storybook
|
|
// The --ci flag will skip prompts and not open a browser
|
|
storybookScript: 'yarn storybook --ci',
|
|
}),
|
|
],
|
|
test: {
|
|
name: 'storybook',
|
|
// Enable browser mode
|
|
browser: {
|
|
enabled: true,
|
|
// Make sure to install Playwright
|
|
provider: playwright(),
|
|
headless: true,
|
|
instances: browserInstances,
|
|
},
|
|
setupFiles: ['./.storybook/vitest.setup.ts'],
|
|
},
|
|
},
|
|
],
|
|
},
|
|
})
|
|
)
|