3.1 KiB
K2-TEST: IN-PROGRESS — chưa đo suite (baseline nhận 598/0, CHƯA tự đo)
sub-test-k2 — K2 TEST lane (S164, wave 2/8, SP-002)
Luật đan-xen (bài K1/K2-BE): làm mục nào GHI NGAY mục đó, KHÔNG dựng dàn-bài kèm số chưa đo (bài S161-W7d2: dàn-bài có sẵn con-số = bẫy claim-trước-đo). Mục chưa chạy CHỈ được tiêu-đề + "CHƯA ĐO".
§0 Tiền đề — git status TRƯỚC mọi Write
git status --porcelain@start:sub-test-specialist-1.mdKHÔNG tồn tại trong run-folder ⇒ Write mới AN TOÀN.- File test đang M (lead vừa sửa, CẤM đè):
tests/.../Application/ContractSigningPlanApprovalTests.cs,tests/.../Common/ContractSigningPlanSchemaTests.cs. - Prod code đang M (lane BE K2, CẤM đụng): Features/WorkflowService/entity/config/controller + Mig 71 (untracked).
- Baseline nhận từ lead: 598/0 (45D+553I). CHƯA tự đo (sẽ đo cuối, không tin số đề bài — bài S161-W2).
§1 Đọc nền — ĐO ĐƯỢC GÌ (đã đọc, trước mọi Write)
Đọc trọn: sub-implbe-k2.md (§a-§h) · sub-invest-fable-b2-cum1.md:77-172 (K2.a-K2.h, blueprint 7 test) ·
spec-cum1-chi-tiet-31-07-2026.md (12 vá + checklist ③). Đo lại trên ĐĨA (không tin sổ):
| Thứ cần đo | Site thật | Ghi chú |
|---|---|---|
| submit-guard null | ContractSigningPlanWorkflowService.cs:174-176 |
vá-5 CHẶN null (THẮNG nền :126 cho-qua) |
| submit-guard khác-nhóm | …Service.cs:177-182 |
message …cùng nhóm N{plan.ApprovalGroup} |
| rào (PeId,Group) | ContractSigningPlanFeatures.cs:393-402 |
Phase != TuChoi + ApprovalGroup == approvalGroup |
| list filter group | Features.cs:737-738 |
ĐẶT SAU khối IDOR :720-729 |
| Σ Approved | Features.cs:803-804 |
Sum(l.ApprovedAmount) ?? 0m, DTO slot 25 :64 |
| EnsureDraftEditable | Features.cs:229-237 |
owner∥Admin TRƯỚC, phase {DangSoanThao,TraLai} SAU |
| default ApprovalGroup | ContractSigningPlan.cs:39 = 1 |
mig :52 defaultValue 0 + Sql UPDATE … = 1 :61 |
| site gán-qua-BIẾN | …Service.cs:327-359 ReturnOrRejectAsync |
vá-2 chọn phương án (ii) = TEST KHOÁ, cấm sửa code |
Hạ tầng tái dùng: InternalsVisibleTo CÓ SẴN (SolutionErp.Application.csproj:25) ⇒ gọi THẲNG
ContractSigningPlanScope.EnsureDraftEditable (Pattern 12, không cần reflection). Global using Xunit +
FluentAssertions (…Tests.csproj:31-32). .slnx chỉ liệt PROJECT ⇒ file .cs mới KHÔNG cần sửa slnx.
QUYẾT: file MỚI Application/ContractSigningPlanGroupAndCatalogTests.cs + fixture RIÊNG
(mirror ContractSigningPlanCrudTests.cs:49-82, có AuditingInterceptor) — KHÔNG chạm 2 file lead vừa vá
(ContractSigningPlanApprovalTests.cs fixture SeedPlanAsync +catalog · ContractSigningPlanSchemaTests.cs
unique-3-cột), KHÔNG chạm ContractSigningPlanCrudTests.cs (helper CreateAsync ở đó không mang tham số
nhóm; thêm tham số = sửa file người khác đang dùng).