Status: done
作为测试开发者, 我想要扩展用户管理 Page Object 以支持企业用户和人才用户的创建, 以便为 Epic 12 的用户管理和小程序登录测试提供基础的 Page Object 能力。
扩展 UserManagementPage 支持 EMPLOYER 类型用户
createEmployerUser 方法,支持创建企业用户username, password, companyId 以及可选的 phone, email, nickname, name扩展 UserManagementPage 支持 TALENT 类型用户
createTalentUser 方法,支持创建人才用户username, password, personId 以及可选的 phone, email, nickname, name保持向后兼容
createUser 方法保持不变(默认创建 ADMIN 用户)类型安全
EmployerUserData 和 TalentUserData 接口错误处理
[ ] 任务 1: 分析用户管理表单结构 (AC: 1, 2)
[ ] 任务 2: 扩展 UserManagementPage 类型定义 (AC: 4)
EmployerUserData 接口TalentUserData 接口UserType 常量(参考 @d8d/shared-types)[ ] 任务 3: 实现 createEmployerUser 方法 (AC: 1)
selectRadixOptionAsync 选择公司[ ] 任务 4: 实现 createTalentUser 方法 (AC: 2)
selectRadixOptionAsync 选择残疾人[ ] 任务 5: 添加辅助方法 (AC: 5)
selectUserType 方法(选择用户类型)selectCompany 方法(选择公司)selectPerson 方法(选择残疾人)[ ] 任务 6: 编写单元测试验证 Page Object (AC: 3, 5)
createEmployerUser 方法正确调用createTalentUser 方法正确调用[ ] 任务 7: 运行现有测试确保向后兼容 (AC: 3)
users.spec.ts 所有测试通过Page Object 模式
web/tests/e2e/pages/admin/user-management.page.tsRadix UI Select 集成
@d8d/e2e-test-utils 的 selectRadixOptionAsync 工具函数packages/e2e-test-utils/src/select.ts依赖的测试数据
来自 packages/shared-types/src/index.ts:
export enum UserType {
ADMIN = 'admin', // 管理员
EMPLOYER = 'employer', // 企业用户
TALENT = 'talent' // 人才用户
}
export const TypeNameMap: Record<UserType, string> = {
[UserType.ADMIN]: '管理员',
[UserType.EMPLOYER]: '企业用户',
[UserType.TALENT]: '人才用户'
};
创建用户 Schema (来自 packages/core-module/user-module/src/schemas/user.schema.ts):
username, password, companyIdusername, password, personIdphone, email, nickname, name, avatarFileId, isDisabled对齐统一项目结构
web/tests/e2e/pages/admin/web/tests/e2e/fixtures/web/tests/e2e/specs/admin/测试标准参考
company-management.page.tscompany-create.spec.tsTypeScript 配置
any 类型Playwright 配置
TIMEOUTS 常量依赖包
@d8d/e2e-test-utils: 提供测试工具函数@playwright/test: E2E 测试框架_bmad-output/planning-artifacts/epics.md (第 2383-2425 行)_bmad-output/planning-artifacts/prd.md_bmad-output/planning-artifacts/architecture.mdpackages/core-module/user-module/src/schemas/user.schema.tspackages/shared-types/src/index.ts (第 56-67 行)web/tests/e2e/pages/admin/user-management.page.tsweb/tests/e2e/pages/admin/company-management.page.tspackages/e2e-test-utils/src/select.tsweb/tests/e2e/specs/admin/users.spec.tsClaude Opus 4.5 (model ID: 'claude-opus-4-5-20251101')
无(开发过程中记录)
无(开发过程中记录)
主要文件:
web/tests/e2e/pages/admin/user-management.page.ts (主要修改文件)web/tests/e2e/specs/admin/users.spec.ts (现有测试,确保通过)web/tests/e2e/fixtures/test-users.json (测试用户数据)