feat: Q4 测试覆盖 + 插件生态 — 集成测试/E2E/进销存插件/热更新
Q4 成熟度路线图全部完成:
1. 集成测试框架 (Testcontainers + PostgreSQL):
- auth_tests: 用户 CRUD、租户隔离、用户名唯一性
- plugin_tests: 动态表创建查询、租户数据隔离
2. Playwright E2E 测试:
- 登录页面渲染和表单验证测试
- 用户管理、插件管理、多租户隔离占位测试
3. 进销存插件 (erp-plugin-inventory):
- 6 实体: 产品/仓库/库存/供应商/采购单/销售单
- 12 权限、6 页面、完整 manifest
- WASM 编译验证通过
4. 插件热更新:
- POST /api/v1/admin/plugins/{id}/upgrade
- manifest 对比 + 增量 DDL + WASM 热加载
- 失败保持旧版本继续运行
5. 文档更新: CLAUDE.md + wiki/index.md 同步 Q2-Q4 进度
This commit is contained in:
22
CLAUDE.md
22
CLAUDE.md
@@ -254,9 +254,10 @@ impl ErpModule for AuthModule {
|
||||
| 测试类型 | 覆盖目标 | 工具 |
|
||||
|----------|---------|------|
|
||||
| 单元测试 | 每个 service 函数 | `#[cfg(test)]` + `tokio::test` |
|
||||
| 集成测试 | API 端点 → 数据库 | `cargo test` + 真实 PostgreSQL |
|
||||
| 集成测试 | API 端点 → 数据库 | Testcontainers + 真实 PostgreSQL |
|
||||
| 多租户测试 | 数据隔离验证 | 独立测试 crate |
|
||||
| 前端测试 | 组件交互 | Vitest (未来) |
|
||||
| E2E 测试 | 前端关键流程 | Playwright |
|
||||
| 插件测试 | 动态表 CRUD + 租户隔离 | Testcontainers |
|
||||
|
||||
### 6.2 验证命令
|
||||
|
||||
@@ -385,6 +386,14 @@ cargo build -p erp-plugin-test-sample --target wasm32-unknown-unknown --release
|
||||
wasm-tools component new target/wasm32-unknown-unknown/release/erp_plugin_test_sample.wasm -o target/erp_plugin_test_sample.component.wasm # 转为 Component
|
||||
cargo test -p erp-plugin-prototype # 运行插件集成测试
|
||||
|
||||
# === 集成测试 (需要 Docker) ===
|
||||
docker compose -f docker/docker-compose.yml up -d # 确保 Docker 运行
|
||||
cargo test -p erp-server --test integration # 运行集成测试
|
||||
|
||||
# === E2E 测试 (需要前后端运行) ===
|
||||
cd apps/web && pnpm test:e2e # 运行 Playwright E2E 测试
|
||||
cd apps/web && pnpm test:e2e:ui # Playwright 可视化界面
|
||||
|
||||
# === 一键启动 (PowerShell) ===
|
||||
.\dev.ps1 # 启动前后端(自动清理端口占用)
|
||||
.\dev.ps1 -Stop # 停止前后端
|
||||
@@ -422,6 +431,7 @@ cargo test -p erp-plugin-prototype # 运行插件集成测试
|
||||
| `server` | erp-server |
|
||||
| `plugin` | erp-plugin / erp-plugin-prototype / erp-plugin-test-sample |
|
||||
| `crm` | erp-plugin-crm |
|
||||
| `inventory` | erp-plugin-inventory |
|
||||
| `web` | Web 前端 |
|
||||
| `ui` | React 组件 |
|
||||
| `db` | 数据库迁移 |
|
||||
@@ -472,6 +482,9 @@ chore(docker): 添加 PostgreSQL 健康检查
|
||||
| - | WASM 插件原型 (V1-V6) | ✅ 验证通过 |
|
||||
| - | 插件系统集成到主服务 | ✅ 已集成 |
|
||||
| - | CRM 插件 (Phase 1-3) | ✅ 完成 |
|
||||
| - | Q2 安全地基 + CI/CD | ✅ 完成 |
|
||||
| - | Q3 架构强化 + 前端体验 | ✅ 完成 |
|
||||
| - | Q4 测试覆盖 + 插件生态 | ✅ 完成 |
|
||||
|
||||
### 已实现模块
|
||||
|
||||
@@ -480,14 +493,15 @@ chore(docker): 添加 PostgreSQL 健康检查
|
||||
| erp-core | 错误类型、共享类型、事件总线、ErpModule trait、审计日志 | ✅ 完成 |
|
||||
| erp-common | 共享工具 | ✅ 完成 |
|
||||
| erp-server | Axum 服务入口、配置、数据库连接、CORS | ✅ 完成 |
|
||||
| erp-auth | 身份与权限 (用户/角色/权限/组织/部门/岗位) | ✅ 完成 |
|
||||
| erp-auth | 身份与权限 (用户/角色/权限/组织/部门/岗位/行级数据权限) | ✅ 完成 |
|
||||
| erp-workflow | 工作流引擎 (BPMN 解析/Token 驱动/任务分配) | ✅ 完成 |
|
||||
| erp-message | 消息中心 (CRUD/模板/订阅/通知面板) | ✅ 完成 |
|
||||
| erp-config | 系统配置 (字典/菜单/设置/编号规则/主题) | ✅ 完成 |
|
||||
| erp-plugin | 插件管理 (WASM 运行时/生命周期/动态表/数据CRUD) | ✅ 已集成 |
|
||||
| erp-plugin | 插件管理 (WASM 运行时/生命周期/动态表/数据CRUD/热更新/行级数据权限) | ✅ 已集成 |
|
||||
| erp-plugin-prototype | WASM 插件 Host 运行时 (Wasmtime + bindgen + Host API) | ✅ 原型验证 |
|
||||
| erp-plugin-test-sample | WASM 测试插件 (Guest trait + Host API 回调) | ✅ 原型验证 |
|
||||
| erp-plugin-crm | CRM 客户管理插件 (5 实体/9 权限/6 页面) | ✅ 完成 |
|
||||
| erp-plugin-inventory | 进销存管理插件 (6 实体/12 权限/6 页面) | ✅ 完成 |
|
||||
|
||||
<!-- ARCH-SNAPSHOT-END -->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user