neon-sprawl/docs/manual-qa/NEO-131.md

44 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# NEO-131 — Manual QA checklist
| Field | Value |
|-------|-------|
| Key | NEO-131 |
| Title | E7M2-08: Client quest completion reward HUD (Godot) |
| Linear | https://linear.app/neon-sprawl/issue/NEO-131/e7m2-08-client-quest-completion-reward-hud-godot |
| Plan | `docs/plans/NEO-131-implementation-plan.md` |
| Branch | `NEO-131-client-quest-completion-reward-hud` |
## Preconditions
- **Fresh dev player:** stop any running server, then start a new instance so in-memory quest progress and delivery store reset.
- **No Bruno/curl** for this checklist — use Godot gameplay only.
- NEO-129 **`completionRewardSummary`** on quest-progress GET landed on `main`.
- NEO-122 quest HUD + NEO-128 reward delivery wiring landed on `main`.
## Expected reward HUD progression
| After | `QuestRewardDeliveryLabel` |
|-------|----------------------------|
| Boot (no completions yet) | `Quest rewards:` / `—` |
| Gather intro completes (3× scrap) | `Intro: Salvage Run` + `Salvage +25 XP` |
| Godot restart (server still running, quests already completed) | `—` (transition-only; no replay) |
| Operator chain completes | item line (`Survey Drone Kit ×1` when item defs loaded) + `Salvage +50 XP` |
| Quest-progress GET fails (server stopped) | `QuestProgressLabel` shows `sync error — …`; reward label `—` |
## Checklist
1. Start server: `cd server/NeonSprawl.Server && dotnet run`.
2. Run Godot main scene (**F5**). Confirm **`QuestRewardDeliveryLabel`** shows **`Quest rewards:`** / **`—`** below **`QuestAcceptFeedbackLabel`** in **`HudRootScroll`**.
3. Press **Q** to accept gather intro. Gather scrap (**R** on resource node ×3) until **`Intro: Salvage Run: completed`** on **`QuestProgressLabel`**.
4. Verify **`QuestRewardDeliveryLabel`** updates to **`Salvage +25 XP`** (quest display name on the line above when defs loaded).
5. Stop Godot and press **F5** again (server still running). Verify reward label stays **`—`** while progress still shows gather **`completed`** (idempotent boot — no transition replay).
6. Optional — operator chain: follow [NEO-123](NEO-123.md) through **`prototype_quest_operator_chain`** completion. Verify reward label shows **`Survey Drone Kit ×1`** (or raw id fallback) and **`Salvage +50 XP`** on chain completion transition only.
7. Optional: stop server while Godot running; trigger a quest-progress refresh (gather or **Q** accept). Verify **`QuestProgressLabel`** shows **`sync error — …`** and reward label **`—`**.
## Regression spot-check
- [NEO-122](NEO-122.md) — quest progress + accept HUD unchanged except new label below accept feedback.
- [NEO-110](NEO-110.md) — encounter loot label still independent from quest completion bundles.
**Full-flow capstone:** [NEO-132](NEO-132.md) extends this checklist with economy HUD verification across all four quest completion bundles.