28 lines
1.4 KiB
Markdown
28 lines
1.4 KiB
Markdown
# NEO-37 — Manual QA checklist
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| Key | NEO-37 |
|
|
| Title | Skill progression snapshot (read model) |
|
|
| Linear | https://linear.app/neon-sprawl/issue/NEO-37/skill-progression-snapshot-read-model |
|
|
| Plan | `docs/plans/NEO-37-implementation-plan.md` |
|
|
| Branch | `NEO-37-skill-progression-snapshot-read-model` |
|
|
|
|
## Preconditions
|
|
|
|
- Server running with default dev player seeded (same as other **`/game/players/dev-local-1/...`** flows).
|
|
- Skill catalog loaded (prototype trio); **`skills`** is key-by-**`id`** (array order is not contractual).
|
|
|
|
## Checklist
|
|
|
|
1. Start **`NeonSprawl.Server`** (e.g. `dotnet run` from `server/NeonSprawl.Server`).
|
|
2. **`GET /game/players/dev-local-1/skill-progression`** — expect **200** and **`Content-Type`** containing **`application/json`**.
|
|
|
|
```bash
|
|
curl -sS -i "http://localhost:5253/game/players/dev-local-1/skill-progression"
|
|
```
|
|
|
|
3. Parse JSON — **`schemaVersion`** **1**, **`playerId`** **`dev-local-1`**, **`skills`** length **3** with **`id`**s **`intrusion`**, **`refine`**, **`salvage`** (any order); each row **`xp`** **0**, **`level`** **1**.
|
|
4. Unknown player — **`GET /game/players/missing-player/skill-progression`** — expect **404**.
|
|
5. Optional: run **`bruno/neon-sprawl-server/skill-progression/Get skill progression.bru`** (see `environments/Local.bru` for **`{{baseUrl}}`**).
|