universo-platform-2d
/
vitest.config.ts
80 строк · 2.1 Кб
1import { resolve } from 'node:path';
2import { fileURLToPath } from 'node:url';
3
4import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin';
5import * as fg from 'fast-glob';
6import swc from 'unplugin-swc';
7import { defineConfig } from 'vitest/config';
8
9const rootDir = fileURLToPath(new URL('.', import.meta.url));
10
11export default defineConfig({
12plugins: [
13vanillaExtractPlugin(),
14// https://github.com/vitejs/vite-plugin-react-swc/issues/85#issuecomment-2003922124
15swc.vite({
16jsc: {
17preserveAllComments: true,
18parser: {
19syntax: 'typescript',
20dynamicImport: true,
21tsx: true,
22decorators: true,
23},
24target: 'es2022',
25externalHelpers: false,
26transform: {
27react: {
28runtime: 'automatic',
29},
30useDefineForClassFields: false,
31decoratorVersion: '2022-03',
32},
33},
34sourceMaps: true,
35inlineSourcesContent: true,
36}),
37],
38assetsInclude: ['**/*.md', '**/*.zip'],
39resolve: {
40alias: {
41// prevent tests using two different sources of yjs
42yjs: resolve(rootDir, 'node_modules/yjs'),
43'@affine/core': fileURLToPath(
44new URL('./packages/frontend/core/src', import.meta.url)
45),
46},
47},
48test: {
49setupFiles: [
50resolve(rootDir, './scripts/setup/polyfill.ts'),
51resolve(rootDir, './scripts/setup/lit.ts'),
52resolve(rootDir, './scripts/setup/vi-mock.ts'),
53resolve(rootDir, './scripts/setup/global.ts'),
54],
55include: [
56// rootDir cannot be used as a pattern on windows
57fg.convertPathToPattern(rootDir) +
58'packages/{common,frontend}/**/*.spec.{ts,tsx}',
59],
60exclude: [
61'**/node_modules',
62'**/dist',
63'**/build',
64'**/out,',
65'**/packages/frontend/apps/electron',
66],
67testTimeout: 5000,
68coverage: {
69all: false,
70provider: 'istanbul', // or 'c8'
71reporter: ['lcov'],
72reportsDirectory: resolve(rootDir, '.coverage/store'),
73},
74server: {
75deps: {
76inline: ['@blocksuite/affine/blocks'],
77},
78},
79},
80});
81