|
|
@@ -12,6 +12,8 @@ Status: ready-for-dev
|
|
|
|
|
|
## Acceptance Criteria
|
|
|
|
|
|
+> **注意**: 本 Story 不包含 WebSocket 通信验证,因为小程序和后端服务未采用 WebSocket。
|
|
|
+
|
|
|
### AC1: 后台创建订单基础流程
|
|
|
**Given** 后台订单管理功能已完成(Epic 10)
|
|
|
**When** 测试者在管理后台创建订单
|
|
|
@@ -31,15 +33,7 @@ Status: ready-for-dev
|
|
|
- 验证订单信息完整(订单名称、状态、日期等)
|
|
|
- 验证数据同步在合理时间内完成(≤ 10 秒)
|
|
|
|
|
|
-### AC3: WebSocket 通信验证(可选)
|
|
|
-**Given** 小程序支持 WebSocket 实时更新
|
|
|
-**When** 订单创建后
|
|
|
-**Then** 测试应验证以下功能:
|
|
|
-- 监听 WebSocket 连接(`/mini-ws` 端点)
|
|
|
-- 验证订单创建消息正确推送
|
|
|
-- 验证消息格式符合预期
|
|
|
-
|
|
|
-### AC4: 多 Page 对象管理
|
|
|
+### AC3: 多 Page 对象管理
|
|
|
**Given** 测试需要同时操作后台和小程序
|
|
|
**When** 执行跨端测试
|
|
|
**Then** 测试应满足以下要求:
|
|
|
@@ -47,7 +41,7 @@ Status: ready-for-dev
|
|
|
- 正确管理多个 browser context 或 page
|
|
|
- 确保测试之间不会相互干扰
|
|
|
|
|
|
-### AC5: 测试数据隔离和清理
|
|
|
+### AC4: 测试数据隔离和清理
|
|
|
**Given** 跨端测试涉及多个系统
|
|
|
**When** 执行测试
|
|
|
**Then** 测试应遵循以下策略:
|
|
|
@@ -55,7 +49,7 @@ Status: ready-for-dev
|
|
|
- 测试后清理创建的订单数据
|
|
|
- 验证清理后小程序列表不再显示该订单
|
|
|
|
|
|
-### AC6: 数据同步时效性验证
|
|
|
+### AC5: 数据同步时效性验证
|
|
|
**Given** 网络延迟和系统负载
|
|
|
**When** 创建订单后查询小程序
|
|
|
**Then** 测试应验证以下场景:
|
|
|
@@ -63,7 +57,7 @@ Status: ready-for-dev
|
|
|
- 支持轮询等待机制(最多等待 10 秒)
|
|
|
- 验证超时情况下的错误处理
|
|
|
|
|
|
-### AC7: 代码质量标准
|
|
|
+### AC6: 代码质量标准
|
|
|
**Given** 遵循项目测试规范
|
|
|
**When** 编写测试代码
|
|
|
**Then** 代码应符合以下标准:
|
|
|
@@ -76,7 +70,9 @@ Status: ready-for-dev
|
|
|
|
|
|
## Tasks / Subtasks
|
|
|
|
|
|
-- [ ] 任务 1: 创建跨端测试文件和基础设施 (AC: #4, #7)
|
|
|
+> **注意**: 已移除 WebSocket 相关任务(原任务 4),因为小程序和后端服务未采用 WebSocket。
|
|
|
+
|
|
|
+- [ ] 任务 1: 创建跨端测试文件和基础设施 (AC: #3, #6)
|
|
|
- [ ] 1.1 创建 `web/tests/e2e/specs/cross-platform/order-create-sync.spec.ts`
|
|
|
- [ ] 1.2 配置测试 fixtures(adminLoginPage, orderManagementPage, enterpriseMiniPage)
|
|
|
- [ ] 1.3 添加测试前置条件(需要测试平台和公司数据)
|
|
|
@@ -91,24 +87,19 @@ Status: ready-for-dev
|
|
|
- [ ] 3.2 验证订单信息完整性
|
|
|
- [ ] 3.3 实现数据同步等待机制
|
|
|
|
|
|
-- [ ] 任务 4: 实现 WebSocket 通信验证(可选)(AC: #3)
|
|
|
- - [ ] 4.1 添加 WebSocket 监听器(如支持)
|
|
|
- - [ ] 4.2 验证消息推送格式
|
|
|
- - [ ] 4.3 验证消息内容正确性
|
|
|
-
|
|
|
-- [ ] 任务 5: 实现测试数据清理策略 (AC: #5)
|
|
|
- - [ ] 5.1 添加 afterEach 钩子清理订单数据
|
|
|
- - [ ] 5.2 验证清理后小程序不再显示该订单
|
|
|
+- [ ] 任务 4: 实现测试数据清理策略 (AC: #4)
|
|
|
+ - [ ] 4.1 添加 afterEach 钩子清理订单数据
|
|
|
+ - [ ] 4.2 验证清理后小程序不再显示该订单
|
|
|
|
|
|
-- [ ] 任务 6: 实现数据同步时效性验证 (AC: #6)
|
|
|
- - [ ] 6.1 实现轮询等待机制
|
|
|
- - [ ] 6.2 验证正常同步时间(≤ 5 秒)
|
|
|
- - [ ] 6.3 验证超时处理(最长 10 秒)
|
|
|
+- [ ] 任务 5: 实现数据同步时效性验证 (AC: #5)
|
|
|
+ - [ ] 5.1 实现轮询等待机制
|
|
|
+ - [ ] 5.2 验证正常同步时间(≤ 5 秒)
|
|
|
+ - [ ] 5.3 验证超时处理(最长 10 秒)
|
|
|
|
|
|
-- [ ] 任务 7: 验证代码质量 (AC: #7)
|
|
|
- - [ ] 7.1 运行 `pnpm typecheck` 验证类型检查
|
|
|
- - [ ] 7.2 运行测试确保所有测试通过
|
|
|
- - [ ] 7.3 验证选择器使用 data-testid
|
|
|
+- [ ] 任务 6: 验证代码质量 (AC: #6)
|
|
|
+ - [ ] 6.1 运行 `pnpm typecheck` 验证类型检查
|
|
|
+ - [ ] 6.2 运行测试确保所有测试通过
|
|
|
+ - [ ] 6.3 验证选择器使用 data-testid
|
|
|
|
|
|
## Dev Notes
|
|
|
|
|
|
@@ -295,23 +286,6 @@ await expect(async () => {
|
|
|
});
|
|
|
```
|
|
|
|
|
|
-### WebSocket 通信验证(可选)
|
|
|
-
|
|
|
-**WebSocket 监听器:**
|
|
|
-```typescript
|
|
|
-// 监听 WebSocket 连接
|
|
|
-page.on('websocket', ws => {
|
|
|
- ws.on('framereceived', frame => {
|
|
|
- if (frame.payload) {
|
|
|
- const message = JSON.parse(frame.payload.toString());
|
|
|
- // 验证消息格式
|
|
|
- expect(message).toHaveProperty('type', 'order_created');
|
|
|
- expect(message.data).toHaveProperty('orderId');
|
|
|
- }
|
|
|
- });
|
|
|
-});
|
|
|
-```
|
|
|
-
|
|
|
### 测试数据准备策略
|
|
|
|
|
|
**前置条件:**
|
|
|
@@ -439,7 +413,6 @@ const POLL_INTERVAL = 500;
|
|
|
|
|
|
**同步问题调试:**
|
|
|
- 检查网络请求(使用 Playwright 的 network 监听)
|
|
|
-- 检查 WebSocket 连接(如使用)
|
|
|
- 检查 localStorage 和 sessionStorage(token 存储)
|
|
|
|
|
|
### 参考文档
|
|
|
@@ -480,3 +453,8 @@ _Artifact file: `/mnt/code/188-179-template-6/_bmad-output/implementation-artifa
|
|
|
- 多 Page 对象管理策略
|
|
|
- 数据同步等待策略
|
|
|
- 状态:ready-for-dev
|
|
|
+- 2026-01-14: 移除 WebSocket 相关内容
|
|
|
+ - 原因:小程序和后端服务未采用 WebSocket
|
|
|
+ - 修改:移除 AC3、任务 4、Dev Notes 中的 WebSocket 部分
|
|
|
+ - 验收标准:7 个 → 6 个
|
|
|
+ - 任务数量:7 个 → 6 个
|