feat: Q4 测试覆盖 + 插件生态 — 集成测试/E2E/进销存插件/热更新
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled

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:
iven
2026-04-17 22:17:47 +08:00
parent 62eea3d20d
commit e8739e80c7
22 changed files with 1679 additions and 64 deletions

View File

@@ -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 -->