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

66 lines
2.1 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.

# Manual QA — NEO-63 (gather via interact → inventory)
Reference: [implementation plan](../plans/NEO-63-implementation-plan.md), [NEO-62 implementation plan](../plans/NEO-62-implementation-plan.md) gather engine, [NEO-55](./NEO-55.md) inventory GET.
## Preconditions
- Run `NeonSprawl.Server` from `server/NeonSprawl.Server` (`dotnet run`; default `http://localhost:5253`).
- Player **`dev-local-1`** (default seed).
```bash
BASE=http://localhost:5253
ID=dev-local-1
```
## Happy path — gather → inventory + XP
Move in range of **`prototype_resource_node_alpha`** (anchor **12, 6**; stand at **10, 6**):
```bash
curl -sS -i -X POST "${BASE}/game/players/${ID}/move" \
-H "Content-Type: application/json" \
-d '{"schemaVersion":1,"target":{"x":10,"y":0.9,"z":-6}}'
```
Interact:
```bash
curl -sS -i -X POST "${BASE}/game/players/${ID}/interact" \
-H "Content-Type: application/json" \
-d '{"schemaVersion":1,"interactableId":"prototype_resource_node_alpha"}'
```
Expect **HTTP 200**, **`allowed`:** **true**.
Inventory should show **`scrap_metal_bulk`** quantity **1** (or +1 per repeat):
```bash
curl -sS "${BASE}/game/players/${ID}/inventory"
```
Skill progression should show **`salvage`** **`xp`** **+10** per successful gather:
```bash
curl -sS "${BASE}/game/players/${ID}/skill-progression"
```
## Depletion deny
Repeat interact on the same node until capacity is exhausted (**10** successful gathers on a fresh node), then interact again:
```bash
curl -sS -i -X POST "${BASE}/game/players/${ID}/interact" \
-H "Content-Type: application/json" \
-d '{"schemaVersion":1,"interactableId":"prototype_resource_node_alpha"}'
```
Expect **HTTP 200**, **`allowed`:** **false**, **`reasonCode`:** **`node_depleted`**. Inventory and XP totals unchanged on that denied request.
## Control — terminal
Move near **`prototype_terminal`**, interact with **`prototype_terminal`**: **`allowed`:** **true**; no **`scrap_metal_bulk`** added; no gather XP from terminal alone.
## Bruno
Run folder `bruno/neon-sprawl-server/interaction/`**`Post interact gather then get inventory.bru`** and **`Post interact depleted node deny.bru`**.