36 lines
2.0 KiB
Markdown
36 lines
2.0 KiB
Markdown
# Manual QA — NEO-121 (quest telemetry hook sites)
|
|
|
|
Reference: [implementation plan](../plans/NEO-121-implementation-plan.md), [NEO-117 implementation plan](../plans/NEO-117-implementation-plan.md) (quest operations), [NEO-118 implementation plan](../plans/NEO-118-implementation-plan.md) (objective wiring).
|
|
|
|
## Preconditions
|
|
|
|
- Run `NeonSprawl.Server` (`dotnet run` from `server/NeonSprawl.Server`; default `http://localhost:5253`) if exercising Bruno; not required for code review only.
|
|
- This story adds **comments only**; quest behavior matches NEO-117/118/119/120.
|
|
|
|
## Code review check
|
|
|
|
- [ ] Open `server/NeonSprawl.Server/Game/Quests/QuestStateOperations.cs`.
|
|
- [ ] Confirm **`quest_start`** comment block immediately after successful **`TryActivate`** in **`TryAccept`** (before objective wiring).
|
|
- [ ] Confirm **`quest_step_complete`** comment block after successful **`TryAdvanceStep`** store commit.
|
|
- [ ] Confirm **`quest_complete`** comment block after first-time **`TryMarkComplete`** commit (not on idempotent **`completed`** early return).
|
|
- [ ] Confirm **`quest_accept_denied`** comment in **`DenyAccept`** (used by all **`TryAccept`** deny paths).
|
|
- [ ] Confirm **`TODO(E9.M1)`** markers and planned payload fields; **no** new `ILogger` or metrics calls.
|
|
- [ ] Confirm **no** duplicate hook comments in **`QuestAcceptApi`**, **`QuestProgressApi`**, or **`QuestObjectiveWiring`**.
|
|
- [ ] Open [server README — Quest telemetry hooks (NEO-121)](../../server/README.md#quest-telemetry-hooks-neo-121) — NEO-121 subsection present with event table.
|
|
|
|
## Regression (optional)
|
|
|
|
```bash
|
|
cd server && dotnet test NeonSprawl.sln
|
|
```
|
|
|
|
Expect all tests pass (comments-only change).
|
|
|
|
## Bruno (optional sanity)
|
|
|
|
From `bruno/neon-sprawl-server/quest-progress/` against a running server:
|
|
|
|
- **Get quest progress default** — all quests **`not_started`** unchanged.
|
|
- **Post accept gather intro** — **`accepted: true`** unchanged.
|
|
- **Post accept duplicate** — **`accepted: false`**, **`reasonCode: already_active`** unchanged.
|