fix(system): code-review 15 项修复(预览基数/维度校验/脱敏穿透/并发版本号等)
- 信息员预览基数改用本人销售额(原误用折算毛利润额,金额算错且口径自相矛盾) - 产品类别入参与维度值加存在性校验(拼错静默回退默认阈值 30% 会算错轨交工资) - submit 校验顺序前置查库(未注册 param_code 由 500 修正为 400) - 金额拒绝 NaN/Infinity(比较抛 InvalidOperation、计算抛溢出均穿透为 500) - version_no 并发冲突翻译为 400(对齐 user/role service 的 IntegrityError 处理) - 旧值留痕改取条目生效日时点的值(多未来批次下留痕链不再错位) - 脱敏红线:phone/mobile/id_card 键名整值抹除 + 手机号正则兼容分隔符写法 - 前端:撤回按钮与导出文件名改本地日期(UTC/本地混算)、维度行内精确「改」入口、 detailOf 补 catch、抽屉分页 size 生效、blob 错误读出真实 message - e2e 密码移除硬编码 fallback(缺失即报错退出);按钮文案同步「改」 - 全量回归:后端 406 + 集成 104 + 前端 type-check/build + e2e 7 步 全绿 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
1 parent
6219698a39
commit
fbf044f240
9 files changed
+154
-49
No files matched your search
@@ -62,7 +62,20 @@ class TestSerializeRequestData:
|
||||
def test_手机号被脱敏(self) -> None:
|
||||
text = _serialize_request_data({"phone": "13812345678"}) or ""
|
||||
assert "13812345678" not in text
|
||||
assert "138****5678" in text
|
||||
# phone 键已加入结构化抹除清单(整值 ***)—— 带空格/横线分隔的号码
|
||||
# (如 138 0013 8000)会穿过分值文本正则,键名整值抹除是更强的防线
|
||||
assert '"phone": "***"' in text
|
||||
|
||||
def test_带分隔符的手机号被脱敏(self) -> None:
|
||||
"""修复回归:'138 0013 8000' 类分隔符写法曾同时穿过分值正则与键名清单。"""
|
||||
for payload in (
|
||||
{"phone": "138 0013 8000"},
|
||||
{"phone": "138-0013-8000"},
|
||||
{"mobile": "13800138000"},
|
||||
):
|
||||
text = _serialize_request_data(payload) or ""
|
||||
assert "13800138000" not in text.replace(" ", "").replace("-", "")
|
||||
assert "***" in text
|
||||
|
||||
def test_超长中文按字节边界截断且无残字(self) -> None:
|
||||
"""75000 字节(25000 个汉字)必然超限:
|
||||
|
||||
Reference in new issue
Block a user