fix(tests): bench tier xanh + offline tier chạy đủ 70 module #160

Merged
tant merged 1 commit from fix/offline-tier-bench-green into main 2026-06-04 19:00:26 +07:00
Owner

bench run-tests: Ran 1614 OK skipped=1493 (0 fail/0 error). Offline 70/70 pass. Detector ALL_CLEAN.

  1. Bịt rò rỉ mock import-time sang frappe thật dưới bench.
  2. Class offline-stub sót skip → @skipIf(is_bench_mode).
  3. Integration multi-SSA → prerequisites_met()+skipUnless.
  4. CI selector test.yml: install_frappe_stub|is_bench_mode (trước chỉ 21/70 chạy offline).
bench run-tests: Ran 1614 OK skipped=1493 (0 fail/0 error). Offline 70/70 pass. Detector ALL_CLEAN. 1. Bịt rò rỉ mock import-time sang frappe thật dưới bench. 2. Class offline-stub sót skip → @skipIf(is_bench_mode). 3. Integration multi-SSA → prerequisites_met()+skipUnless. 4. CI selector test.yml: install_frappe_stub|is_bench_mode (trước chỉ 21/70 chạy offline).
fix(tests): bench tier xanh + offline tier chạy đủ 70 module
All checks were successful
Test (offline) / test (push) Successful in 23s
Test (offline) / test (pull_request) Successful in 25s
647bb34241
Hoàn tất tầng test bench-safe: `bench run-tests --app vhrms` giờ
discover sạch và 0 fail/0 error (Ran 1614, OK, skipped=1493).

Sửa 3 nhóm vấn đề:

1. Rò rỉ mock import-time sang frappe THẬT dưới bench
   - test_npt_dependent: _install_frappe_stub() chạy ở module-level
     mutate frappe.throw/utils.* khi bench → corrupt mọi bench test gọi
     frappe.throw (vd minimum_wage seed). Early-return khi is_bench_mode().
   - 13 file "Re-apply custom mocks" đặt trước guard → bọc trong
     `if not _stub.is_bench_mode():` (welfare_event, pension_handling,
     t13_bonus, pc_trang_phuc, pit_taxable_income_invariant,
     payroll_deductions, probation_band_floor, pit_calculator,
     salary_structure_api, probation_percentage, holiday_list_migration,
     salary_component_accounts, pit_exemption_law_109_2025).
   - software_license_allocation + vietnam_ot_limit: gán frappe.throw/
     get_all ở module-level → guard lại.

2. Class offline-stub bị sót decorator skip → chạy nhầm dưới bench
   - snapshot_constants.TestSerializers, vietnam_overtime_slip
     (TestHourlyRateFromWorkingDays/TestOTBaseComponentFilter/
     TestOTLimitsValidation), ot_limit_enforcement.TestEnforceOTLimitsAtValidate
     → thêm @skipIf(_stub.is_bench_mode()).

3. Integration test multi-SSA fail vì site CI trống thiếu fixture
   - Thêm multi_ssa_seed.prerequisites_met() (Company/Department/Cost
     Center/Gender/salary structure). skipUnless trên các class
     TestMultiSSASlip*/TestSegmentBuilder → bỏ qua trên site trống, vẫn
     chạy trên site đã cấu hình.

CI: sửa selector offline tier (test.yml) — grep cũ
`_is_bench_mode|_install_frappe_stub` chỉ khớp 21/70 file sau migration;
đổi sang `install_frappe_stub|is_bench_mode` để chạy đủ 70 module
offline-stub. (49 module trước đây âm thầm không chạy trong CI.)

Validate local: offline 70/70 pass, bench 0 fail, detector ALL_CLEAN.
tant merged commit b123548c20 into main 2026-06-04 19:00:26 +07:00
tant deleted branch fix/offline-tier-bench-green 2026-06-04 19:00:26 +07:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
tant/vhrms!160
No description provided.