wal: flush 20260801T1242

This commit is contained in:
pqhuy1987
2026-08-01 12:42:24 +07:00
parent 6b2ec7b591
commit f5ee146d9a
2 changed files with 40 additions and 8 deletions

View File

@ -45,9 +45,11 @@ chain:
→ cicd → cicd
[ ] GĐ3 cây-4-folder ĐỒNG-NHẤT — anh chốt (55) @S167 "Nên đồng nhất": áp cây 4-folder lên cụm trang [ ] GĐ3 cây-4-folder ĐỒNG-NHẤT — anh chốt (55) @S167 "Nên đồng nhất": áp cây 4-folder lên cụm trang
Duyệt-hợp-đồng (7 loại HĐ) ×2 app — làm SAU K7 ship (tái dùng tập ContractIds/usePipelineStages mới) Duyệt-hợp-đồng (7 loại HĐ) ×2 app — làm SAU K7 ship (tái dùng tập ContractIds/usePipelineStages mới)
[ ] K8-prep form-14-người fail-closed + gói SOLUTION-PE-{n} + QĐ9 đo-2-nhánh + ZZTEST + rollback-theo-ID [ ] K8-prep form-14-người fail-closed + gói SOLUTION-PE-{n} + QĐ9 đo-2-nhánh + ZZTEST + rollback-theo-ID.
+ dựng 2 workflow KHKK type-3/type-10 qua Designer đọc roster từ PE-live — anh (54) @S167 "quy trình 🔴 (54) FINAL @S167 (anh, 2 lượt): "quy trình duyệt tử tế rồi ko sao" + "hiện cứ như vậy — Nếu điều
duyệt t tế rồi ko sao" = ratified-hướng, dựng khi vào K8-prep (báo cáo khi làm, KHÔNG SQL tay #84) chỉnh, tao sẽ t tay điều chỉnh" ⇒ GIỮ HIỆN TRẠNG workflow/người-duyệt KHKK (8 WF N1-N8 đã seed @K3,
roster verified-live); em KHÔNG dựng/chỉnh gì thêm — chỉnh người duyệt = VIỆC TAY CỦA ANH qua Designer.
K8-prep pre-flight chỉ CHECK-đọc (workflow LIVE 2-cờ + roster đủ người) rồi báo, KHÔNG sửa
[ ] closeout-nợ: ✅ slot(57) ĐÓNG @S167 (anh "auto"): SPLIT _INDEX 21.468→8.756B (42,7% cap) + [ ] closeout-nợ: ✅ slot(57) ĐÓNG @S167 (anh "auto"): SPLIT _INDEX 21.468→8.756B (42,7% cap) +
_INDEX-2026-H1.md 13.906B tầng-lạnh · vá kèm 3-bệnh-sẵn (mega-line #423 · 29-entry lạc-section · _INDEX-2026-H1.md 13.906B tầng-lạnh · vá kèm 3-bệnh-sẵn (mega-line #423 · 29-entry lạc-section ·
needle-quote test-specialist) · 3 script cùng-class → `_INDEX*.md` (gate-2-chỗ chống-haystack-dương-giả needle-quote test-specialist) · 3 script cùng-class → `_INDEX*.md` (gate-2-chỗ chống-haystack-dương-giả

View File

@ -66,12 +66,42 @@ File MỚI: `tests/SolutionErp.Infrastructure.Tests/Api/KhkkBridgeAuthzTests.cs`
| 4 | `CauKhkkSangHd_Admin_KhongCanDongQuyenNao_VanQua` | khoá nhánh bypass (0 dòng `Permissions`) — chống "siết cho nhất quán" rồi khoá luôn Admin | | 4 | `CauKhkkSangHd_Admin_KhongCanDongQuyenNao_VanQua` | khoá nhánh bypass (0 dòng `Permissions`) — chống "siết cho nhất quán" rồi khoá luôn Admin |
| 5 | `CauKhkkSangHd_UserBiVoHieuHoa_ThiChan_DuCoDuQuyen` | **cùng bộ quyền, đổi ĐÚNG 1 biến `IsActive`** ⇒ kết quả ngược (nghỉ việc mà token còn hạn) | | 5 | `CauKhkkSangHd_UserBiVoHieuHoa_ThiChan_DuCoDuQuyen` | **cùng bộ quyền, đổi ĐÚNG 1 biến `IsActive`** ⇒ kết quả ngược (nghỉ việc mà token còn hạn) |
## §3b — Vá-7 B6 neo mới ## §3b — [✅ XONG] Vá-7 B6 neo mới = **T12 end-to-end** — `--filter CreateContractFromSigningPlanTests` → **12/12** (11 + T12)
CHƯA ĐO. `T12_DiTronDuongFinalizeRoiBacCau_GiaTriLaSoDaCHOT_VaKhongDoiVeSau` (cùng file §2).
## §4 — Suite FULL **KHÔNG chỉ "thêm 1 assert vào test K3"** — lý do khai rõ: test K3 dừng ở "finalize GHI `ApprovedAmount`"; cầu K7 thì ĐỌC cột đó; **mối nối giữa 2 vế chưa ai đo**, mà chính nó là điều kiện sống của happy-path (invest `:154`: "không có K3 thì `ApprovedAmount` NULL 100%" ⇒ cầu chặn mọi phiếu). T12 cho phiếu đi TRỌN đường qua `ContractSigningPlanWorkflowService` THẬT (trình → duyệt → terminal chốt giá) rồi mới bắc cầu — **KHÔNG seed thẳng Phase/giá** (seed thẳng = tự đưa đáp án rồi chấm).
CHƯA ĐO. - neo (a) `Phase == DaDuyet` do MÁY tự đi tới.
- neo (b) **tương phản chống-rỗng:** dòng A `Approved=111` chốt sẵn (`Proposed=999`) · dòng B `Approved=null` (`Proposed=250`) ⇒ sau finalize phải là {111, 250} — chứng `??=` GIỮ số người có thẩm quyền chốt tay, không bị 999 đè.
- neo (c) `GiaTri == 361` = 111+250. Σ `Proposed` = 1249; lấy nhầm nguồn ra 1249/1109/500 — **mọi cách sai đều KHÁC 361**.
- vế cuối theo đúng chữ vá-7: sau bắc cầu, bấm `approve` lần nữa → `ConflictException` (phiếu terminal) và đọc lại **`Line.ContractId` KHÔNG đổi** + `ApprovedAmount` KHÔNG đổi.
END test-k7 — VERDICT=IN-PROGRESS ## §4 — [✅ XONG] Suite FULL `dotnet test SolutionErp.slnx --nologo`
```
Passed! - Failed: 0, Passed: 45, Total: 45 — SolutionErp.Domain.Tests
Passed! - Failed: 0, Passed: 594, Total: 594 — SolutionErp.Infrastructure.Tests
```
| | Domain | Infra | Tổng | FAIL |
|---|---|---|---|---|
| Baseline (đo tươi @§0) | 45 | 577 | **622** | **1** (bàn giao BE) |
| Sau K7-test | 45 | **594** | **639** | **0** |
| Δ | 0 | **+17** | **+17** | 1 |
**+17 = 12** (`CreateContractFromSigningPlanTests`, T1-T12) **+ 5** (`KhkkBridgeAuthzTests`). File `AuthorizePolicyRegressionTests` +0 test (sửa test sẵn có: 1 FAIL → PASS, +2 vế assert).
- Flaky đã khai `DeleteContractSigningPlan_SoftDeletes`: **KHÔNG nổ** lượt này (0 Failed, chạy 1 lần duy nhất — không phải chạy lại).
- **Dấu chân trên đĩa (`git status`):** đúng **3 file `tests/**`** (1 M + 2 ??). `src/Backend/**` + `fe-*/**` dirty là của lane BE/FE, **tôi không chạm 1 dòng nào**. KHÔNG commit.
## §5 — FLAG cho lead
**0 FLAG bug production.** 12 test bridge + 5 authz đều xanh trên mã BE hiện tại; không có test nào phải giữ ĐỎ.
2 việc KHAI để lead phân xử (không phải bug, là chỗ lệch giấy tờ / vùng chưa phủ):
1. 🟡 **Lệch spec đã đo (giấy tờ, không phải mã):** bảng invest T1 `:75` ghi `WorkflowDefinitionId null`**vá-6 thắng** và mã đang pin V1. Tôi test theo CODE + vá-6, ghi mismatch trong header file test. Nếu lead muốn giữ chữ của bảng invest thì phải sửa MÃ (không phải sửa test).
2. 🟡 **Vùng KHÔNG phủ được bằng unit test, thuộc acceptance sau restart:** `SeedContractCreateAccessAsync` (`DbInitializer.cs:2757-2822`) — grant `Contracts.Create` chỉ ăn **@restart API prod**. `KhkkBridgeAuthzTests` chứng "vai có 2 vế thì qua / thiếu 1 vế thì 403" nhưng KHÔNG chứng seeder THẬT cấp đúng vai (Drafter/Procurement/Admin) và cấp SAU revoker (#84). Nghiệm thu vẫn phải là đếm row `Permissions WHERE MenuKey='Contracts' AND CanCreate=1` sau restart thật — đúng như implbe-k7 §1 đã khai.
END test-k7 — VERDICT=DONE (suite FULL 639/0 = 45 Domain + 594 Infra · Δ+17 · 1 FAIL bàn-giao đã đóng · 0 file production chạm · chưa commit)