# 会议出勤 - 冒烟测试报告 (smoke)

> 日期: 2026-01-28
> 模块: meeting-attendance
> 类型: smoke
> 执行人: Codex

## 范围与类型选择说明
- 类型: 冒烟验证（页面可达 + 关键接口可用）
- 说明: 按用户指示执行基础验证，Teams 相关页面不在本次范围

## 环境信息
- 前端: http://localhost:3000
- 后端: http://localhost:3001/api/v1
- storageState: 未使用（UI 登录：e2e.meetingmanager@ff.com）

## 验证命令
- Playwright MCP（手动执行）
- 后端接口（可复跑）:
  - `curl http://localhost:3001/api/v1/meeting-attendance/meetings/{id}/public`
- 前端页面（手工）:
  - `/meetingattendance/meetings`
  - `/meetingattendance/meetings/{id}`
  - `/meetingattendance/meetings/{id}/qr`
  - `/meetingattendance/checkin/guest?meetingId={id}`
  - `/meetingattendance/reports?meetingId={id}`
  - `/meetingattendance/templates`
  - `/meetingattendance/series`
  - `/meetingattendance/users`
  - `/meetingattendance/audit-logs`

## 用例与结果
1. 会议列表页面可达且展示会议卡片
   - 前置: MeetingManager 登录
   - 操作: 访问 `/meetingattendance/meetings`
   - 期望: 页面标题可见，会议卡片列表加载
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/01-meetings-list.png`

2. 会议二维码页面可达且二维码可见
   - 前置: 使用会议 `cmhlac5yj002fy60snhtur4j9`
   - 操作: 访问 `/meetingattendance/meetings/cmhlac5yj002fy60snhtur4j9/qr`
   - 期望: 在线/线下二维码可见
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/02-qr-codes.png`

3. 访客签到入口可进入并展示表单
   - 前置: 会议 `cmhlac5yj002fy60snhtur4j9`
   - 操作: 访问 `/meetingattendance/checkin/guest?meeting=cmhlac5yj002fy60snhtur4j9&type=on_site`
   - 期望: 访客签到表单可见（若未到签到时间提示不可签到）
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/03-guest-checkin-form.png`

4. 报表页面可达且统计加载完成
   - 前置: 选择会议 `E2E Guest Checkin 2026-01-27T01:10 - 1/27/2026, 1:00:00 AM`
   - 操作: 访问 `/meetingattendance/reports` 并选择会议
   - 期望: 统计卡片与明细表可见
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/04-reports.png`

5. 会议详情页面可达且信息加载完成
   - 前置: 会议 `cmhlac5yj002fy60snhtur4j9`
   - 操作: 访问 `/meetingattendance/meetings/cmhlac5yj002fy60snhtur4j9`
   - 期望: Meeting Details 区块与参会人列表可见
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/05-meeting-detail.png`

6. 模板页面可达且空态可见
   - 操作: 访问 `/meetingattendance/templates`
   - 期望: “No templates yet” 空态可见
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/06-templates.png`

7. 系列会议页面可达且实例列表加载
   - 操作: 访问 `/meetingattendance/series`
   - 期望: Meeting Series 标题与系列实例列表可见
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/07-series.png`

8. 用户管理页面可达且用户列表可见
   - 操作: 访问 `/meetingattendance/users`
   - 期望: User Management 标题与用户列表可见
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/08-users.png`

9. 审计日志页面可达且日志列表可见
   - 操作: 访问 `/meetingattendance/audit-logs`
   - 期望: Audit Logs 标题与日志卡片可见
   - 结果: 通过
   - 截图: `testing/reports/meeting-attendance-2026-01-27-smoke/09-audit-logs.png`

## 观察到的问题/风险
- 前端控制台出现警告：`React does not recognize the %s prop on a DOM element`（在用户管理页触发）

## 结论
- 本次冒烟验证已执行：9 通过，0 失败。
