test(e2e): A4 字典与配置端到端用例
背景:A4-QA-01 需要真实 API + Web + PG 的浏览器回归。\n改动:新增 e2e/a4-dicts-settings.spec.ts,覆盖三层合并 / 编码只读 / 树词表切换 / 类型与条目启停 / 命名预览 / 阈值二次确认 / 变更记录 / 权限三态;e2e/README 登记 A4 用例与 Semi 选择器口径。\n影响面:仅测试文件;A4_E2E=1 才执行,默认 skip。\n回滚:删除本文件即可。\n验证:A4_E2E=1 运行 7 passed(约 1.1m);eslint/prettier 通过。
This commit is contained in:
1 parent
3b0a99d91f
commit
f16d04fe02
2 files changed
+716
-6
No files matched your search
+38
-6
@@ -2,12 +2,13 @@
|
||||
|
||||
## 现有用例
|
||||
|
||||
| 文件 | 说明 | 默认是否执行 |
|
||||
| --------------------- | --------------------------------------------- | ----------------- |
|
||||
| `smoke.spec.ts` | A0 冒烟:登录、模块切换、403 / 404 | 是 |
|
||||
| `a1-identity.spec.ts` | A1-QA-01 账号生命周期(①–⑥) | 否,需 `A1_E2E=1` |
|
||||
| `a2-roles.spec.ts` | A2-QA-01 角色管理 / 权限三态 / SoD / 即时生效 | 否,需 `A2_E2E=1` |
|
||||
| `a3-client.spec.ts` | A3-QA-01 客户与行业六页可访问 / 数据加载 | 否,需 `A3_E2E=1` |
|
||||
| 文件 | 说明 | 默认是否执行 |
|
||||
| --------------------------- | ------------------------------------------------------------------------ | ----------------- |
|
||||
| `smoke.spec.ts` | A0 冒烟:登录、模块切换、403 / 404 | 是 |
|
||||
| `a1-identity.spec.ts` | A1-QA-01 账号生命周期(①–⑥) | 否,需 `A1_E2E=1` |
|
||||
| `a2-roles.spec.ts` | A2-QA-01 角色管理 / 权限三态 / SoD / 即时生效 | 否,需 `A2_E2E=1` |
|
||||
| `a3-client.spec.ts` | A3-QA-01 客户与行业六页可访问 / 数据加载 | 否,需 `A3_E2E=1` |
|
||||
| `a4-dicts-settings.spec.ts` | A4-QA-01 数据字典 / 三层合并 / 编码只读 / 系统配置 / 阈值确认 / 变更记录 | 否,需 `A4_E2E=1` |
|
||||
|
||||
## A1 账号生命周期用例
|
||||
|
||||
@@ -77,3 +78,34 @@ A3_E2E=1 pnpm exec playwright test e2e/a3-client.spec.ts --reporter=list
|
||||
|
||||
- 可选覆盖:`A3_E2E_BASE_URL`(缺省 `http://127.0.0.1:5173`)、`A3_E2E_API_BASE_URL`(缺省 `http://127.0.0.1:3000/api/v1`)。
|
||||
- 截图:`design/a3-ui-v1/impl/`(实施报告引用)。
|
||||
|
||||
## A4 数据字典与系统配置用例(A4-QA-01)
|
||||
|
||||
覆盖 7 条:
|
||||
|
||||
1. `/system/dicts` 主从页:h1、左侧「字典类型」、右栏 `script_direction` 类型头、三层 chips(通用 5 + 父行业 2 + 本行业 1 = 生效 7)、默认行业「电商 / 服饰鞋包」、种草短视频(已覆盖)/ 直播切片 / 穿搭教程;树 ↔ 词表切换(`?view=tree|list`);行业作用域切全平台(生效 5)再切回。
|
||||
2. 条目:新增 SideSheet → 列表出现 → 编辑态编码 disabled 且值锁定 → Modal.confirm 停用 / 启用 → 行状态变化。
|
||||
3. 类型:新建(`a4e2e_` 唯一 code + 名称 + 分组 + 形态树)→ 左侧类型列表可见 → 编辑类型编码 / 形态只读。
|
||||
4. `/system/settings`:6 组导航、6 个占位符 chips、实时预览「电商-花间集-口播-20261104-01」、模板行内编辑与放弃恢复。
|
||||
5. 阈值:客户基础字段上限改 12 → 保存全部更改 → 二次确认 → toast / Prisma 断言版本 +1 / 变更记录抽屉含前后值与原因。
|
||||
6. 只读态:无 `dict:manage` / `system:configure` 账号访问两页 → `/403`。
|
||||
7. 未登录访问 `/system/dicts` → 重定向登录页。
|
||||
|
||||
### 前置与运行
|
||||
|
||||
1. API 3000 + Web 5173(`pnpm dev`,真实 PG;已执行 `pnpm db:init`)。
|
||||
2. 用例自建临时超管 `qa4.dicts.e2e` 与只读账号 `qa4.dicts.ro`(Prisma 写入,结束后删除);字典类型 / 条目按 `a4e2e_` 前缀清理;系统配置保存后恢复原值并删除本次 history。
|
||||
|
||||
```bash
|
||||
A4_E2E=1 pnpm exec playwright test e2e/a4-dicts-settings.spec.ts --reporter=list
|
||||
```
|
||||
|
||||
- 可选覆盖:`A4_E2E_BASE_URL`(缺省 `http://127.0.0.1:5173`)、`A4_E2E_API_BASE_URL`(缺省 `http://127.0.0.1:3000/api/v1`)。
|
||||
- 结果:7 passed(约 1.1m)。
|
||||
- 截图:不生成常驻截图;失败时 Playwright 默认 `only-on-failure` 落 `test-results/`。
|
||||
|
||||
### 选择器校准(Semi)
|
||||
|
||||
- Semi Select 选项可访问名含图标 aria-label(tick),精确匹配不到,使用 `.semi-select-option` 文本点击。
|
||||
- `Modal.confirm` 的确认 / 取消按钮 `aria-label` 固定为 `confirm` / `cancel`,不要按 `okText` 文本定位。
|
||||
- `RadioGroup` 隐藏 input 被 addon 拦截,点可见文本或 `.semi-radio-addon-buttonRadio`。
|
||||
Reference in new issue
Block a user