tmagic-editor/vitest.config.ts
roymondchen 94fae10ae0 feat(editor): 新增 SDK 层并将核心服务迁移至 sdk 目录
- 新增 packages/editor/src/sdk,通过 sdk.ts 对外导出
- 将 services 下的核心服务迁移至 sdk/services
- 工具函数拆分至 sdk/utils,校验逻辑迁移至 sdk/validate,新增 sdk/wiring
- services/sdk-instance.ts 负责在编辑器中实例化 SDK
- 补充 SDK 相关单元测试,新增 docs/api/editor/sdk.md 文档
2026-10-08 19:58:03 +08:00

101 lines
3.0 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { resolve } from 'node:path';
import { defineConfig } from 'vitest/config';
import Vue from '@vitejs/plugin-vue';
const r = (p: string) => resolve(import.meta.dirname, p);
const alias = {
'@editor': r('./packages/editor/src'),
'@form': r('./packages/form/src'),
'@form/headless': r('./packages/form/src/headless.ts'),
'@tmagic/form/headless': r('./packages/form/src/headless.ts'),
'@tmagic/form': r('./packages/form/src'),
'@tmagic/editor/headless': r('./packages/editor/src/headless.ts'),
'@tmagic/editor/sdk': r('./packages/editor/src/sdk.ts'),
'@data-source': r('./packages/data-source/src'),
};
export default defineConfig({
test: {
coverage: {
include: ['packages/*/src/**'],
exclude: [
'./runtime/**',
'./playground/**',
'./docs/**',
'./packages/*/dist/**',
'./packages/*/types/**',
'./packages/*/tests/**',
'./packages/cli/lib/**',
'./packages/design/**',
'./packages/element-plus-adapter/**',
'./packages/tdesign-vue-next-adapter/**',
],
reporter: ['text-summary', 'json-summary', 'html'],
thresholds: {
lines: 85,
},
},
projects: [
{
plugins: [Vue()],
resolve: { alias },
test: {
name: 'dom',
include: ['./packages/*/tests/**', './runtime/*/tests/**'],
exclude: [
'./packages/cli/tests/**',
'./packages/editor/tests/unit/sdk/**',
'./packages/editor/tests/unit/hooks/use-stage.spec.ts',
// 多份用例共用的脚手架模块,本身不含用例
'./packages/*/tests/**/helpers/**',
],
environment: 'happy-dom',
pool: 'vmThreads',
vmMemoryLimit: '2GB',
maxWorkers: 8,
// 配置不同 pool/maxWorkers 的项目需要分到不同 group,否则 vitest 无法调度
sequence: { groupOrder: 0 },
},
},
{
plugins: [Vue()],
resolve: { alias },
test: {
name: 'dom-forks',
include: ['./packages/editor/tests/unit/hooks/use-stage.spec.ts'],
environment: 'happy-dom',
pool: 'forks',
isolate: false,
sequence: { groupOrder: 1 },
},
},
{
plugins: [Vue()],
resolve: { alias },
test: {
name: 'node',
include: ['./packages/cli/tests/**', './packages/form/tests/node/**', './packages/editor/tests/unit/sdk/**'],
// 多份用例共用的脚手架模块,本身不含用例
exclude: ['./packages/*/tests/**/helpers/**'],
environment: 'node',
pool: 'forks',
isolate: false,
sequence: { groupOrder: 2 },
},
},
{
test: {
name: 'scripts',
include: ['./scripts/**/*.spec.ts'],
environment: 'node',
pool: 'forks',
isolate: false,
sequence: { groupOrder: 3 },
},
},
],
},
});