43 lines
4.8 KiB
Markdown
43 lines
4.8 KiB
Markdown
# Test Readiness Gate (`TEST_READY.md`) — D2GS v1.13c Online Gameplay Loops & Server Authority
|
||
|
||
## Status: READY (Tiers 1–5 Complete & Verified)
|
||
|
||
The 5-tier E2E test suite for all 16 features (`F1`–`F16`) — including Tier 1–4 opaque-box requirement coverage and Tier 5 white-box post-implementation adversarial hardening — is implemented and verified at `/usr/local/google/home/taodao/diablo2-web/tests/e2e-d2gs-online/`.
|
||
|
||
---
|
||
|
||
## Test Suite Inventory & Execution Commands
|
||
|
||
| Tier | Test File | Test Count | Minimum Threshold | Run Command |
|
||
|---|---|---:|---:|---|
|
||
| **Tier 1 (Core Feature Coverage)** | `tests/e2e-d2gs-online/tier1-feature-coverage.test.ts` | **80** (`5 × F1–F16`) | `>= 80` (`>= 5` / feature) | `npx vitest run tests/e2e-d2gs-online/tier1-feature-coverage.test.ts` |
|
||
| **Tier 2 (Boundary, Corner & Negative)** | `tests/e2e-d2gs-online/tier2-boundary-corner.test.ts` | **80** (`5 × F1–F16`) | `>= 80` (`>= 5` / feature) | `npx vitest run tests/e2e-d2gs-online/tier2-boundary-corner.test.ts` |
|
||
| **Tier 3 (Cross-Feature Integration)** | `tests/e2e-d2gs-online/tier3-cross-feature.test.ts` | **16** | `>= 16` | `npx vitest run tests/e2e-d2gs-online/tier3-cross-feature.test.ts` |
|
||
| **Tier 4 (Real-World Session Scenarios)** | `tests/e2e-d2gs-online/tier4-real-world-scenarios.test.ts` | **8** | `>= 8` | `npx vitest run tests/e2e-d2gs-online/tier4-real-world-scenarios.test.ts` |
|
||
| **Tier 5 (White-Box Adversarial Hardening)** | `tests/e2e-d2gs-online/tier5-adversarial-hardening.test.ts` | **20** | `>= 16` | `npx vitest run tests/e2e-d2gs-online/tier5-adversarial-hardening.test.ts` |
|
||
| **Full E2E Suite (Tiers 1–5)** | `tests/e2e-d2gs-online/` | **204** | `>= 200` | `npx vitest run tests/e2e-d2gs-online` |
|
||
| **TypeScript Typecheck** | `tsconfig.json` | 0 errors | 0 errors | `npx tsc --noEmit` |
|
||
|
||
---
|
||
|
||
## Feature-to-Test Coverage Matrix (`F1`–`F16`)
|
||
|
||
| Feature | Requirement | Tier 1 Tests | Tier 2 Tests | Tier 3 Tests | Tier 4 Scenarios | Tier 5 Adversarial |
|
||
|---|---|---|---|---|---|---|
|
||
| **F1** — Canonical 1.13c Online Item Tooltip Bridge | R1.1 | `F1.1`–`F1.5` (5) | `F1.B1`–`F1.B5` (5) | `CF1, CF2, CF4, CF9, CF12, CF16` | Scenarios 1, 4, 8 | `T5.1, T5.5` |
|
||
| **F2** — C2S Container, Belt, NPC, Merc, Warp, Party & Trade Packet Encoders | R1.2, R2–R5 | `F2.1`–`F2.5` (5) | `F2.B1`–`F2.B5` (5) | `CF3` + all C2S assertions | Scenarios 1–8 | `T5.18, T5.19, T5.20` |
|
||
| **F3** — Server-Authoritative Container, Belt, Identify, Socket & Tome UI Wiring | R1.2 | `F3.1`–`F3.5` (5) | `F3.B1`–`F3.B5` (5) | `CF1, CF2, CF3, CF10` | Scenarios 1, 2 | `T5.1, T5.2, T5.3, T5.4` |
|
||
| **F4** — Weapon Set II (`bodyLoc` 11 & 12) Sync | R1.3 | `F4.1`–`F4.5` (5) | `F4.B1`–`F4.B5` (5) | `CF4` | Scenario 1 | `T5.6` |
|
||
| **F5** — Act 1–5 Town & Quest NPC Descriptors | R2.1 | `F5.1`–`F5.5` (5) | `F5.B1`–`F5.B5` (5) | `CF5, CF6, CF16` | Scenarios 3, 8 | `T5.8, T5.9, T5.17` |
|
||
| **F6** — NPC Info (`0x27`), SetNPCTalk (`0x91`), Talk Submenu & `0x31 QuestMessage` | R2.2 | `F6.1`–`F6.5` (5) | `F6.B1`–`F6.B5` (5) | `CF5` | Scenario 3 | `T5.7, T5.8, T5.9` |
|
||
| **F7** — Act Travel Menu Options & C2S `0x38 EntityAction` | R2.3 | `F7.1`–`F7.5` (5) | `F7.B1`–`F7.B5` (5) | `CF6` | Scenario 3 | `T5.19` |
|
||
| **F8** — Mercenary World State (`0x4E`, `0x4F`, `0x9B` & `lifePct`) | R3.1 | `F8.1`–`F8.5` (5) | `F8.B1`–`F8.B5` (5) | `CF7, CF8, CF10, CF14` | Scenarios 2, 4 | `T5.10, T5.11` |
|
||
| **F9** — Mercenary Hire (`0x36`) & Resurrect (`0x62`) UI | R3.2 | `F9.1`–`F9.5` (5) | `F9.B1`–`F9.B5` (5) | `CF7, CF8` | Scenario 4 | `T5.10, T5.19` |
|
||
| **F10** — Mercenary HUD Portrait & Paperdoll (`O` Hotkey, `0x61 MercItem`) | R3.3 | `F10.1`–`F10.5` (5) | `F10.B1`–`F10.B5` (5) | `CF9, CF10` | Scenarios 2, 4 | `T5.10, T5.11` |
|
||
| **F11** — Dungeon/Stair Warp Clicking (`0x09 AssignWarp` → C2S `0x09 WarpTo`) | R4.1 | `F11.1`–`F11.5` (5) | `F11.B1`–`F11.B5` (5) | `CF11` | Scenario 5 | `T5.12, T5.19` |
|
||
| **F12** — Portal Ownership Hover (`0x60`/`0x82`) & Ground Item Labels (`0x16`) | R4.2 | `F12.1`–`F12.5` (5) | `F12.B1`–`F12.B5` (5) | `CF11, CF12, CF15` | Scenario 5 | `T5.12, T5.19` |
|
||
| **F13** — `SkillCast` (`0x4C`/`0x4D`/`0x6C`/`0x99`/`0x9A`) Animation | R4.3 | `F13.1`–`F13.5` (5) | `F13.B1`–`F13.B5` (5) | `CF13` | Scenario 6 | `T5.13` |
|
||
| **F14** — Player Death Overlay & C2S `0x41 Resurrect` | R4.4 | `F14.1`–`F14.5` (5) | `F14.B1`–`F14.B5` (5) | `CF13, CF14` | Scenario 6 | `T5.14, T5.19` |
|
||
| **F15** — Multiplayer Party State & Party Panel (`P` Hotkey, `0x5D`/`0x5E`) | R5.1 | `F15.1`–`F15.5` (5) | `F15.B1`–`F15.B5` (5) | `CF15` | Scenario 7 | `T5.16, T5.19` |
|
||
| **F16** — Player-to-Player Trade UI (`0x77`–`0x79` & C2S `0x4F`) & Quest Reward Panels | R5.2, R5.3 | `F16.1`–`F16.5` (5) | `F16.B1`–`F16.B5` (5) | `CF16` | Scenario 8 | `T5.15, T5.17, T5.18` |
|