重构(计费): 会员档位 rank 解析改为可失败返回
runtime_profile_membership_plan_rank 返回 Option<u8>,目录缺行时返回 None 去掉 unwrap_or(0),不再把目录缺失伪装成 Normal 而误报 NotUpgrade plan_rank_follows_catalog_order 测试断言同步改为 Some(..) Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
@@ -173,10 +173,11 @@ pub fn resolve_runtime_profile_membership_plan_snapshot(
|
||||
}
|
||||
|
||||
/// 升级比较基准:目录里的 `rank`(`Normal = 0`,越大越高)。
|
||||
pub fn runtime_profile_membership_plan_rank(plan: RuntimeProfileMembershipPlan) -> u8 {
|
||||
resolve_runtime_profile_membership_plan_row(plan)
|
||||
.map(|row| row.rank)
|
||||
.unwrap_or(0)
|
||||
///
|
||||
/// 返回 `Option` 是为了把「目录缺行」显式化:不再用 `unwrap_or(0)` 把缺失伪装成 `Normal`,
|
||||
/// 否则缺失会被 `check_..._allowed` 误判成「目标不高于当前」→ 误报 `NotUpgrade`。
|
||||
pub fn runtime_profile_membership_plan_rank(plan: RuntimeProfileMembershipPlan) -> Option<u8> {
|
||||
resolve_runtime_profile_membership_plan_row(plan).map(|row| row.rank)
|
||||
}
|
||||
|
||||
/// 只有在售档位可以下单:`Normal` 与下架档位都不允许购买。
|
||||
@@ -371,15 +372,15 @@ mod tests {
|
||||
fn plan_rank_follows_catalog_order() {
|
||||
assert_eq!(
|
||||
runtime_profile_membership_plan_rank(RuntimeProfileMembershipPlan::Normal),
|
||||
0
|
||||
Some(0)
|
||||
);
|
||||
assert_eq!(
|
||||
runtime_profile_membership_plan_rank(RuntimeProfileMembershipPlan::Plus),
|
||||
2
|
||||
Some(2)
|
||||
);
|
||||
assert_eq!(
|
||||
runtime_profile_membership_plan_rank(RuntimeProfileMembershipPlan::Max),
|
||||
4
|
||||
Some(4)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user