Files
Edu/apps/portal-shell/vitest.config.ts
SpecialX f586a0b19e feat(portal-shell): v2.0 P1-P4 token migration + unit tests + prod endpoint + e2e
P1: 31 widget 旧纸感令牌批量迁移到 shadcn 标准(1104 次替换)
- bg-paper→bg-background / bg-surface→bg-card / text-ink→text-foreground
- 保留 button.tsx 中 bg-accent(shadcn 标准 hover 语义令牌)

P2: v2.0 新增组件单元测试补齐(5 文件 81 用例)
- permission-bitmap: 24 用例(含 GRADE_READ 重复去重)
- route-permissions: 26 用例(4 张表优先级 + AND/OR 语义)
- notify: 12 用例(sonner toast 双重性质 vi.hoisted mock)
- use-error-report: 9 用例(jsdom Blob vi.stubGlobal mock)
- plugin-boundary: 10 用例(错误边界 + 骨架变体)

P3: 错误上报端点生产替换(后端 /api/v1/log)
- api-gateway: internal/log/handler.go(slog 结构化日志,64KB 限制,204 返回)
- main.go: 注册 POST /api/v1/log 路由
- useErrorReport: 环境感知端点(prod→/api/v1/log,dev→/api/log)

P4: E2E 测试(3 文件 30 用例)
- streaming: 4 用例(React 19 use() + Suspense,act 包裹 render)
- error-boundaries: 6 用例(三级错误边界层级 L1/L2/L3)
- security-boundaries: 20 用例(L1 角色门禁 + L2 权限点 + L3 数据范围)
- vitest setup: IS_REACT_ACT_ENVIRONMENT + jest-dom matchers

验证:typecheck 0 错误 / lint 0 错误 / build 6 路由 / 206 测试全部通过
2026-07-17 16:49:00 +08:00

42 lines
1.1 KiB
TypeScript
Raw 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 { defineConfig } from "vitest/config";
import react from "@vitejs/plugin-react";
import { resolve } from "node:path";
/**
* portal-shell 单元测试配置v2.1 spec §9.9
*
* 环境jsdom支持 React Testing Library
* 路径别名:与 tsconfig.json 对齐
*/
export default defineConfig({
plugins: [react()],
test: {
environment: "jsdom",
include: ["src/**/__tests__/**/*.test.{ts,tsx}"],
globals: true,
setupFiles: ["src/__tests__/setup.ts"],
},
resolve: {
alias: {
"@": resolve(__dirname, "src"),
"@edu/hooks": resolve(__dirname, "../../packages/hooks/src/index.ts"),
"@edu/ui-components": resolve(
__dirname,
"../../packages/ui-components/src/index.ts",
),
"@edu/ui-tokens": resolve(
__dirname,
"../../packages/ui-tokens/src/index.ts",
),
"@edu/shared-ts/contracts": resolve(
__dirname,
"../../packages/shared-ts/src/contracts/index.ts",
),
"@edu/shared-ts/permission-bitmap": resolve(
__dirname,
"../../packages/shared-ts/src/permission-bitmap.ts",
),
},
},
});