33 lines
2.1 KiB
Markdown
33 lines
2.1 KiB
Markdown
# NEO-68 — Manual QA checklist
|
||
|
||
| Field | Value |
|
||
|-------|-------|
|
||
| Key | NEO-68 |
|
||
| Title | E3.M2: GET world recipe-definitions + Bruno |
|
||
| Linear | https://linear.app/neon-sprawl/issue/NEO-68/e3m2-get-world-recipe-definitions-bruno |
|
||
| Plan | `docs/plans/NEO-68-implementation-plan.md` |
|
||
| Branch | `NEO-68-get-world-recipe-definitions-bruno` |
|
||
|
||
## Preconditions
|
||
|
||
- Server built and configured with default content paths pointing at repo `content/recipes`, `content/items`, and `content/skills` (local dev / `InMemoryWebApplicationFactory` tests use the same layout).
|
||
|
||
## Checklist
|
||
|
||
1. Start **`NeonSprawl.Server`** (e.g. `dotnet run` from `server/NeonSprawl.Server`).
|
||
2. **`GET /game/world/recipe-definitions`** — expect **200** and **`Content-Type`** containing **`application/json`**. Example (default dev URL from `Properties/launchSettings.json` and Bruno `environments/Local.bru`; change the host/port if yours differs):
|
||
|
||
```bash
|
||
curl -sS -i "http://localhost:5253/game/world/recipe-definitions"
|
||
```
|
||
|
||
3. Parse JSON — expect **`schemaVersion`** === **1**, **`recipes`** array length **8**.
|
||
4. Confirm **`id`** values match the frozen prototype eight in **registry id order** (ordinal):
|
||
|
||
**`make_armor_quick`**, **`make_contract_token`**, **`make_field_stim_batch`**, **`make_field_stim_mk0`**, **`make_prototype_armor`**, **`make_survey_drone_kit`**, **`refine_scrap_efficient`**, **`refine_scrap_standard`**
|
||
|
||
(same sequence as `RecipeDefinitionsWorldApiTests.FrozenEightInIdOrder`).
|
||
5. Spot-check **`refine_scrap_standard`**: **`displayName`** “Refine Scrap (Standard)”, **`recipeKind`** **`process`**, **`requiredSkillId`** **`refine`**, **`inputs`** `[{ itemId: scrap_metal_bulk, quantity: 5 }]`, **`outputs`** `[{ itemId: refined_plate_stock, quantity: 1 }]`.
|
||
6. Spot-check **`make_field_stim_mk0`**: **`recipeKind`** **`make`**, two **`inputs`** rows (`refined_plate_stock` × 2, `scrap_metal_bulk` × 1), **`outputs`** `[{ itemId: field_stim_mk0, quantity: 1 }]`.
|
||
7. Optional: run **`bruno/neon-sprawl-server/recipe-definitions/Get recipe definitions.bru`** against the same **`baseUrl`** (see `environments/Local.bru`).
|