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

2.1 KiB
Raw Blame History

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):

    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).