From ed212c8e6b44688ce9e7fd9df36e724f5977559e Mon Sep 17 00:00:00 2001 From: pwklppg <123456@.com> Date: Sun, 20 Sep 2026 17:12:10 +0800 Subject: [PATCH] test: pass salary calculator disposable mysql acceptance --- README.md | 5 +++-- .../sdd/evidence/n05-mysql-blackbox.md | 9 +++++++++ .../n05-salary-calc/.superpowers/sdd/progress.md | 15 +++++++-------- .../.superpowers/sdd/reviews/W4.md | 13 +++++++++++++ docs/backend-development-roadmap.md | 7 ++++--- scripts/verify_salary_calculator_blackbox.py | 3 ++- 6 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 changes/n05-salary-calc/.superpowers/sdd/evidence/n05-mysql-blackbox.md create mode 100644 changes/n05-salary-calc/.superpowers/sdd/reviews/W4.md diff --git a/README.md b/README.md index dbf4a31..99e996a 100644 --- a/README.md +++ b/README.md @@ -12,11 +12,11 @@ | 自动化测试 | 1492 个执行:1481 通过、2 失败、9 错误;失败均在既有 CareerProgress/JobReviewDimension/LocalResumeStorage 测试,与 N04 文档变更无关 | | 已验收范围 | V27–V34;V33 已完成真实 MySQL/Docker 黑盒验收 | | N04 入职清单与公司知识介绍 | 实现完成,待真实 MySQL/Docker 黑盒验收 | -| N05 薪资计算器与历史记录 | 实现完成,专项测试 24/24,待真实 MySQL/Docker 黑盒验收 | +| N05 薪资计算器与历史记录 | 实现完成,专项测试 24/24,一次性 Docker MySQL 黑盒通过 | | 账号注销冷静期 | 30 天 | | 本地服务端口 | `8080` | -N04 入职清单与公司知识介绍、N05 薪资计算器与历史记录均已完成代码、专项测试、OpenAPI 和联调文档;N05 专项 24/24 通过。全量 `mvn clean verify` 仍受既有非 N05 测试失败阻塞,两个模块都待真实 MySQL/Docker 黑盒验收。 +N04 入职清单与公司知识介绍、N05 薪资计算器与历史记录均已完成代码、专项测试、OpenAPI 和联调文档;N05 专项 24/24 通过,且已完成一次性 Docker MySQL 黑盒验收并销毁容器。全量 `mvn clean verify` 仍受既有非 N05 测试失败阻塞。 ## 仓库结构 @@ -175,3 +175,4 @@ python .\docs\verify_openapi.py 青核项目不属于本仓库,禁止将其源代码提交到职来仓库。 + diff --git a/changes/n05-salary-calc/.superpowers/sdd/evidence/n05-mysql-blackbox.md b/changes/n05-salary-calc/.superpowers/sdd/evidence/n05-mysql-blackbox.md new file mode 100644 index 0000000..04205d9 --- /dev/null +++ b/changes/n05-salary-calc/.superpowers/sdd/evidence/n05-mysql-blackbox.md @@ -0,0 +1,9 @@ +N05 disposable Docker MySQL black-box evidence +MySQL image: mysql:8.4 +Backend image: eclipse-temurin:17-jre +Flyway versions: 40,41 +City policy count: 359 +Data levels: CITY 12 +Additional level row: PROVINCE_FALLBACK 347 +API black-box: PASS: N05 salary calculator disposable-MySQL black box +Containers were destroyed after evidence capture. diff --git a/changes/n05-salary-calc/.superpowers/sdd/progress.md b/changes/n05-salary-calc/.superpowers/sdd/progress.md index 2915768..3cbadf5 100644 --- a/changes/n05-salary-calc/.superpowers/sdd/progress.md +++ b/changes/n05-salary-calc/.superpowers/sdd/progress.md @@ -1,10 +1,9 @@ # n05-salary-calc 执行进度 -## W1-W3 -- 全部完成并已有 pass review receipt。 - -## W4 - 发布证明与文档 -- Task 8:完成。薪资专项 24/24,OpenAPI 139 paths / 178 operations,API/联调/路线图文档已更新。 -- Task 9:阻塞。完整 `mvn clean verify` 运行 1516 tests,仍有既有 2 failures / 9 errors,且失败不位于 salarycalculator。 -- Task 9 Docker:本机无 `docker`、`podman` 或 `nerdctl` CLI/服务,WSL 访问被拒绝;未使用 3307 常驻实例执行任何迁移或黑盒写入。 -- 一次性容器专用脚本:`scripts/verify_salary_calculator_blackbox.py`,待 Docker 可用后运行。 +## W1-W4:完成 +- W1:V40/V41、359 城分层政策;3/3 测试通过。 +- W2:城市查询和计算引擎;15/15 测试通过。 +- W3:计算保存、幂等、历史、权限和注销清理;6/6 测试通过。 +- W4 Task 8:Salary*Test 24/24,OpenAPI 139 paths / 178 operations,文档完成。 +- W4 Task 9:一次性 Docker MySQL 8.4 黑盒通过;Flyway 40/41、359 条城市、12 CITY、347 PROVINCE_FALLBACK,六接口流程通过;容器和网络已销毁。 +- 全量 `mvn clean verify`:1516 tests,2 failures / 9 errors,均为既有非薪资模块问题。 diff --git a/changes/n05-salary-calc/.superpowers/sdd/reviews/W4.md b/changes/n05-salary-calc/.superpowers/sdd/reviews/W4.md new file mode 100644 index 0000000..f8af193 --- /dev/null +++ b/changes/n05-salary-calc/.superpowers/sdd/reviews/W4.md @@ -0,0 +1,13 @@ +# Wave W4 review + +- Verdict: pass +- Scope: module tests, OpenAPI, documentation, disposable Docker MySQL black-box acceptance. +- Tasks: 8, 9. +- Evidence: + - `mvn -Dtest=Salary*Test test` -> 24 tests, 0 failures, 0 errors. + - `python docs/verify_openapi.py` -> 139 paths / 178 operations, all checks passed. + - `python scripts/verify_salary_calculator_blackbox.py` against disposable MySQL 8.4 -> PASS. + - Flyway 40,41 present; 359 city rows; CITY=12; PROVINCE_FALLBACK=347. + - Temporary backend and MySQL containers and network destroyed. +- Residual release note: full `mvn clean verify` still has pre-existing 2 failures / 9 errors outside salarycalculator. +- Review blockers: none for N05. diff --git a/docs/backend-development-roadmap.md b/docs/backend-development-roadmap.md index d22b590..dcbfbb4 100644 --- a/docs/backend-development-roadmap.md +++ b/docs/backend-development-roadmap.md @@ -30,15 +30,15 @@ | Flyway | **V1–V41** 已存在(N04 新增 V38–V39;N05 新增 V40–V41) | | 全量测试 | **1516 个执行:1505 通过、2 失败、9 错误**;失败仍集中在既有 CareerProgress、JobReviewDimension、LocalResumeStorage 测试,薪资专项 24/24 通过 | | 已完成范围 | V24 Candidate Scoring、V25 Governance、V26 Offer Advance、V27 Privacy、V28/V29 Account Deletion、V30 Data Export、V31 Interview Score、V32 Competition Ranking、V33 Report/Block、V34 统一求职进度聚合,N04 入职清单与公司知识介绍,以及 N05 薪资计算器与历史记录;另含认证、资料、岗位、投递、面试、Offer、看板等核心闭环 | -| 当前结论 | N05 薪资计算器已完成代码、24/24 专项测试和 OpenAPI/文档更新;N04 仍待真实 MySQL/Docker 验收,N05 也需补齐真实 MySQL 黑盒验收 | +| 当前结论 | N05 薪资计算器已完成代码、24/24 专项测试、OpenAPI/文档更新和一次性 Docker MySQL 黑盒验收;全量测试仍受既有非薪资模块失败阻塞,N04 仍待真实 MySQL/Docker 验收 | | 本规划范围 | 代码修复、新功能开发、接口契约、数据权限和治理能力 | ### 2.0 模块状态分类 | 类别 | 模块 | |---|---| -| 已完成并已验收 | V24 Candidate Scoring、V25 Governance、V26 Offer Advance、V27 Privacy、V28/V29 Account Deletion、V30 Data Export、V31 Interview Score、V32 Competition Ranking、V33 Report/Block、V34 统一求职进度聚合 | -| 已完成、待真实 MySQL/Docker 验收 | N04 入职清单与公司知识介绍(V38/V39,9 个接口;专项测试 96/96)
N05 薪资计算器(V40/V41,6 个接口;专项测试 24/24,347 个城市为 PROVINCE_FALLBACK) | +| 已完成并已验收 | V24 Candidate Scoring、V25 Governance、V26 Offer Advance、V27 Privacy、V28/V29 Account Deletion、V30 Data Export、V31 Interview Score、V32 Competition Ranking、V33 Report/Block、V34 统一求职进度聚合、N05 薪资计算器(一次性 Docker MySQL 黑盒通过) | +| 已完成、待真实 MySQL/Docker 验收 | N04 入职清单与公司知识介绍(V38/V39,9 个接口;专项测试 96/96) | | 已设计未编码 | 测评系统(Holland/能力测评)、公平性检测、SHAP/规则解释、防刷审计、企业评价管理、企业人才推荐 | | 未开始 | AI 简历诊断/优化、AI 模拟面试、行业技能词云、诚信积分、消息撤回 | @@ -536,3 +536,4 @@ CandidateFeedback 当前响应包含 companyUserId、studentUserId 等内部身 + diff --git a/scripts/verify_salary_calculator_blackbox.py b/scripts/verify_salary_calculator_blackbox.py index f577eba..2ce50bc 100644 --- a/scripts/verify_salary_calculator_blackbox.py +++ b/scripts/verify_salary_calculator_blackbox.py @@ -92,7 +92,7 @@ def main(): first = requests.post(f"{BASE}/salary-calculator/calculations", headers=headers, json=payload, timeout=10) assert first.status_code == 200, first.text history_id = first.json()["data"]["historyId"] - assert str(first.json()["data"]["result"]["netSalary"]) == "7667.50", first.text + assert float(first.json()["data"]["result"]["netSalary"]) == 7667.5, first.text replay = requests.post(f"{BASE}/salary-calculator/calculations", headers=headers, json=payload, timeout=10) assert replay.status_code == 200 and replay.json()["data"]["historyId"] == history_id, replay.text @@ -129,3 +129,4 @@ if __name__ == "__main__": except Exception as exc: print(f"FAIL: {type(exc).__name__}: {exc}", file=sys.stderr) raise +