Browse Source

test: pass salary calculator disposable mysql acceptance

backup/master-local-20261012
pwklppg 1 month ago
parent
commit
ed212c8e6b
  1. 5
      README.md
  2. 9
      changes/n05-salary-calc/.superpowers/sdd/evidence/n05-mysql-blackbox.md
  3. 15
      changes/n05-salary-calc/.superpowers/sdd/progress.md
  4. 13
      changes/n05-salary-calc/.superpowers/sdd/reviews/W4.md
  5. 7
      docs/backend-development-roadmap.md
  6. 3
      scripts/verify_salary_calculator_blackbox.py

5
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
青核项目不属于本仓库,禁止将其源代码提交到职来仓库。

9
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.

15
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,均为既有非薪资模块问题。

13
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.

7
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)<br>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 等内部身

3
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

Loading…
Cancel
Save