2023-01-26 22:53:39 +08:00
|
|
|
import { configDefaults, defineConfig, UserConfig } from 'vitest/config'
|
2023-01-26 15:25:55 +08:00
|
|
|
import path from 'node:path'
|
|
|
|
import { fileURLToPath } from 'node:url'
|
|
|
|
import { readdirSync } from 'node:fs'
|
|
|
|
|
|
|
|
const resolve = p =>
|
2023-01-26 16:12:08 +08:00
|
|
|
path.resolve(fileURLToPath(import.meta.url), `../packages/${p}/src/index.ts`)
|
2023-01-26 15:25:55 +08:00
|
|
|
const dirs = readdirSync(new URL('./packages', import.meta.url))
|
2023-01-26 16:12:08 +08:00
|
|
|
|
|
|
|
const alias = {
|
|
|
|
vue: resolve('vue'),
|
|
|
|
'vue/compiler-sfc': resolve('compiler-sfc'),
|
|
|
|
'vue/server-renderer': resolve('server-renderer'),
|
|
|
|
'@vue/compat': resolve('vue-compat')
|
|
|
|
}
|
|
|
|
|
2023-01-26 15:25:55 +08:00
|
|
|
for (const dir of dirs) {
|
2023-01-26 16:12:08 +08:00
|
|
|
const key = `@vue/${dir}`
|
|
|
|
if (dir !== 'vue' && !(key in alias)) {
|
|
|
|
alias[key] = resolve(dir)
|
|
|
|
}
|
2023-01-26 15:25:55 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
export default defineConfig({
|
|
|
|
define: {
|
|
|
|
__DEV__: true,
|
|
|
|
__TEST__: true,
|
|
|
|
__VERSION__: '"test"',
|
|
|
|
__BROWSER__: false,
|
|
|
|
__GLOBAL__: false,
|
|
|
|
__ESM_BUNDLER__: true,
|
|
|
|
__ESM_BROWSER__: false,
|
|
|
|
__NODE_JS__: true,
|
|
|
|
__SSR__: true,
|
|
|
|
__FEATURE_OPTIONS_API__: true,
|
|
|
|
__FEATURE_SUSPENSE__: true,
|
|
|
|
__FEATURE_PROD_DEVTOOLS__: false,
|
|
|
|
__COMPAT__: true
|
|
|
|
},
|
|
|
|
resolve: {
|
2023-01-26 16:12:08 +08:00
|
|
|
alias
|
2023-01-26 15:25:55 +08:00
|
|
|
},
|
|
|
|
test: {
|
|
|
|
globals: true,
|
2023-02-02 22:08:37 +08:00
|
|
|
threads: false,
|
2023-01-26 21:35:50 +08:00
|
|
|
setupFiles: 'scripts/setupVitest.ts',
|
2023-01-26 22:22:43 +08:00
|
|
|
environmentMatchGlobs: [
|
|
|
|
['packages/{vue,vue-compat,runtime-dom}/**', 'jsdom']
|
2023-01-26 22:53:39 +08:00
|
|
|
],
|
2023-01-27 14:52:41 +08:00
|
|
|
sequence: {
|
|
|
|
hooks: 'list'
|
|
|
|
},
|
2023-01-26 22:53:39 +08:00
|
|
|
coverage: {
|
|
|
|
provider: 'istanbul',
|
|
|
|
reporter: ['text', 'html'],
|
|
|
|
exclude: [
|
|
|
|
...configDefaults.coverage.exclude!,
|
|
|
|
// DOM transitions are tested via e2e so no coverage is collected
|
|
|
|
'packages/runtime-dom/src/components/Transition*',
|
|
|
|
// mostly entries
|
|
|
|
'packages/vue-compat/**'
|
|
|
|
]
|
|
|
|
}
|
2023-01-26 15:25:55 +08:00
|
|
|
}
|
2023-01-26 22:53:39 +08:00
|
|
|
}) as UserConfig
|