5.9 KiB
5.9 KiB
ADDED Requirements
Requirement: Package List Adjustment Actions
The asset information package list SHALL provide operator actions to update a package usage record's real used data and expiration time.
Scenario: Render adjustment actions in the package list
- GIVEN 用户正在查看资产信息页的“套餐列表”
- AND 当前登录账号满足对应操作的可见性规则
- WHEN 页面渲染套餐列表操作列
- THEN 系统 MUST 显示“修改已用量”操作
- AND 系统 MUST 显示“修改过期时间”操作
Scenario: Open used-data adjustment form
- GIVEN 用户可见“修改已用量”操作
- WHEN 用户点击某条套餐记录的“修改已用量”
- THEN 系统 MUST 打开修改已用量弹窗
- AND 弹窗 MUST 展示当前套餐记录上下文
- AND 表单 MUST 要求输入新的套餐真实已用量 MB
Scenario: Open expiration adjustment form
- GIVEN 用户可见“修改过期时间”操作
- WHEN 用户点击某条套餐记录的“修改过期时间”
- THEN 系统 MUST 打开修改过期时间弹窗
- AND 弹窗 MUST 展示当前套餐记录上下文
- AND 表单 MUST 要求输入新的套餐过期时间
Requirement: Used Data Update API Integration
The frontend SHALL update a package usage record's real used data through PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/used-data.
Scenario: Submit valid used-data update
- GIVEN 用户正在修改某条套餐记录的已用量
- AND 当前资产标识符为
identifier - AND 当前套餐使用记录 ID 为
package_usage_id - WHEN 用户输入非负整数
data_usage_mb并提交 - THEN 系统 MUST send
PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/used-data - AND 请求体 MUST be JSON with
data_usage_mb - AND
data_usage_mbMUST be a non-negative integer MB value
Scenario: Reject invalid used-data input
- GIVEN 用户正在修改套餐已用量
- WHEN 用户未输入值、输入负数或输入非整数
- THEN 系统 MUST block submission
- AND 系统 MUST show a validation message explaining that the used data must be a non-negative integer MB value
- AND 系统 MUST NOT call the PATCH endpoint
Scenario: Used-data update succeeds
- GIVEN used-data PATCH request returns
code=0 - WHEN 系统收到响应
- THEN 系统 MUST show a success message
- AND 系统 MUST close the edit dialog
- AND 系统 MUST refresh the asset package list so the latest package usage data is displayed
Requirement: Expiration Time Update API Integration
The frontend SHALL update a package usage record's expiration time through PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/expires-at.
Scenario: Submit valid expiration update
- GIVEN 用户正在修改某条套餐记录的过期时间
- AND 当前资产标识符为
identifier - AND 当前套餐使用记录 ID 为
package_usage_id - WHEN 用户输入有效的
expires_at并提交 - THEN 系统 MUST send
PATCH /api/admin/assets/{identifier}/packages/{package_usage_id}/expires-at - AND 请求体 MUST be JSON with
expires_at - AND
expires_atMUST be formatted asYYYY-MM-DD HH:MM:SSor another backend-accepted RFC3339 string
Scenario: Reject missing expiration input
- GIVEN 用户正在修改套餐过期时间
- WHEN 用户未选择或未输入过期时间
- THEN 系统 MUST block submission
- AND 系统 MUST show a validation message explaining that expiration time is required
- AND 系统 MUST NOT call the PATCH endpoint
Scenario: Expiration update succeeds
- GIVEN expires-at PATCH request returns
code=0 - WHEN 系统收到响应
- THEN 系统 MUST show a success message
- AND 系统 MUST close the edit dialog
- AND 系统 MUST refresh the asset package list so the latest expiration time is displayed
Requirement: Environment And Account Visibility Gate
The frontend SHALL gate both package adjustment actions by environment, current account user_type, and production button permissions.
Scenario: Production platform user with permission sees matching action
- GIVEN 当前运行环境为线上环境
- AND 当前登录账号的
user_type为2 - AND 当前登录账号拥有“修改已用量”的按钮权限
- WHEN 页面渲染套餐列表操作列
- THEN 系统 MUST show “修改已用量”
Scenario: Production platform user without permission cannot see matching action
- GIVEN 当前运行环境为线上环境
- AND 当前登录账号的
user_type为2 - AND 当前登录账号缺少“修改过期时间”的按钮权限
- WHEN 页面渲染套餐列表操作列
- THEN 系统 MUST NOT show “修改过期时间”
Scenario: Production super admin cannot see adjustment actions
- GIVEN 当前运行环境为线上环境
- AND 当前登录账号的
user_type为1 - WHEN 页面渲染套餐列表操作列
- THEN 系统 MUST NOT show “修改已用量”
- AND 系统 MUST NOT show “修改过期时间”
Scenario: Test environment super admin sees actions without permissions
- GIVEN 当前运行环境为测试或开发环境
- AND 当前登录账号的
user_type为1 - AND 当前登录账号没有两个调整操作的按钮权限
- WHEN 页面渲染套餐列表操作列
- THEN 系统 MUST show “修改已用量”
- AND 系统 MUST show “修改过期时间”
Scenario: Test environment non-super-admin cannot see actions
- GIVEN 当前运行环境为测试或开发环境
- AND 当前登录账号的
user_typeis not1 - WHEN 页面渲染套餐列表操作列
- THEN 系统 MUST NOT show “修改已用量”
- AND 系统 MUST NOT show “修改过期时间”