All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 5m39s
- 新增企业设备授权模块(Model、DTO、Service、Handler、Store) - 实现设备授权的创建、查询、更新、删除等完整业务逻辑 - 添加企业卡授权与设备授权的关联关系 - 新增 2 个数据库迁移脚本 - 同步 OpenSpec delta specs 到 main specs - 归档 add-enterprise-device-authorization 变更 - 更新 API 文档和路由配置 - 新增完整的集成测试和单元测试覆盖
2.3 KiB
2.3 KiB
规格:角色请求验证
新增需求
需求:Create 方法验证必填字段
RoleHandler.Create 方法必须验证 CreateRoleRequest 的所有必填字段。
场景:缺少 role_name 返回验证错误
- WHEN 客户端发送 POST /api/admin/roles 请求,body 缺少 role_name 字段
- THEN 返回 HTTP 400
- AND 响应包含错误码(CodeInvalidParam)
- AND 错误消息提示 "参数验证失败"
场景:缺少 role_type 返回验证错误
- WHEN 客户端发送 POST /api/admin/roles 请求,body 缺少 role_type 字段
- THEN 返回 HTTP 400
- AND 响应包含错误码(CodeInvalidParam)
场景:role_name 过长返回验证错误
- WHEN 客户端发送 POST /api/admin/roles 请求,role_name 超过 50 个字符
- THEN 返回 HTTP 400
- AND 响应包含错误码(CodeInvalidParam)
需求:Update 方法验证字段格式
RoleHandler.Update 方法必须验证 UpdateRoleRequest 的字段格式。
场景:role_name 过长返回验证错误
- WHEN 客户端发送 PUT /api/admin/roles/:id 请求,role_name 超过 50 个字符
- THEN 返回 HTTP 400
- AND 响应包含错误码(CodeInvalidParam)
场景:status 值非法返回验证错误
- WHEN 客户端发送 PUT /api/admin/roles/:id 请求,status 值不是 0 或 1
- THEN 返回 HTTP 400
- AND 响应包含错误码(CodeInvalidParam)
需求:AssignPermissions 方法验证权限ID列表
RoleHandler.AssignPermissions 方法必须验证权限ID列表不为空。
场景:perm_ids 为空数组返回验证错误
- WHEN 客户端发送 POST /api/admin/roles/:id/permissions 请求,perm_ids 为空数组 []
- THEN 返回 HTTP 400
- AND 响应包含错误码(CodeInvalidParam)
需求:UpdateStatus 方法验证状态值
RoleHandler.UpdateStatus 方法必须验证状态值在有效范围内。
场景:status 值非法返回验证错误
- WHEN 客户端发送 PUT /api/admin/roles/:id/status 请求,status 值不是 0 或 1
- THEN 返回 HTTP 400
- AND 响应包含错误码(CodeInvalidParam)
测试要求
- 取消 tests/integration/role_test.go 中的 TODO 跳过(第 51 行)
- 验证测试能够通过,证明验证逻辑正常工作