2.7 KiB
2.7 KiB
NEO-140 — Manual QA checklist
| Field | Value |
|---|---|
| Key | NEO-140 |
| Title | E7M3-08: Extend quest HTTP projections for rep + gates |
| Linear | https://linear.app/neon-sprawl/issue/NEO-140/e7m3-08-extend-quest-http-projections-for-rep-gates |
| Plan | docs/plans/NEO-140-implementation-plan.md |
| Branch | NEO-140-e7m3-quest-http-rep-gate-projections |
Preconditions
- Server running:
cd server/NeonSprawl.Server && dotnet run(in-memory dev playerdev-local-1). - Bruno collection
bruno/neon-sprawl-serverloaded withbaseUrl=http://localhost:5253,playerId=dev-local-1. - NEO-138 reward router rep grants and NEO-139 faction-standing GET landed on
main.
Setup sanity
curl -sS http://localhost:5253/healthreturns"status":"ok".dotnet test NeonSprawl.slnpasses (821+ tests).
Quest definitions — factionGateRules
- Run Bruno
quest-definitions/Get quest definitions. Response 200;prototype_quest_grid_contract.factionGateRules=[{ factionId: prototype_faction_grid_operators, minStanding: 15 }]. - Same response:
prototype_quest_gather_introandprototype_quest_operator_chainhave nofactionGateRuleskey. curl -sS http://localhost:5253/game/world/quest-definitions | jq '.quests[] | select(.id=="prototype_quest_grid_contract") | .factionGateRules'matches the Bruno assertion.
Quest progress — completionRewardSummary.reputationGrants
- Run Bruno
quest-progress/Get quest progress after gather intro complete. Gather rowcompletionRewardSummary.reputationGrants=[]. - Run Bruno
quest-progress/Get quest progress after operator chain complete. Operator-chain rowcompletionRewardSummary.reputationGrants=[{ factionId: prototype_faction_grid_operators, amount: 15 }]; item and skill XP lines unchanged from NEO-129 freeze. - Second GET in the operator-chain bru matches the first (idempotent summary).
No regressions
- Bruno
faction-standing/Get faction standing after operator chainstill shows Grid Operators standing 15 after operator-chain flow. - Bruno
quest-progress/Accept grid contract after operator chainaccepts grid contract when rep gate met and embedded rowcompletionRewardSummary.reputationGrants=[{ factionId: prototype_faction_rust_collective, amount: 10 }]. - NEO-129 gather-intro
completionRewardSummaryshape unchanged except new emptyreputationGrantsarray.
Client HUD verification deferred to NEO-142 (Godot HUD) — this story is server HTTP projection only.