NEO-44: Fix Bruno collection ordering and interaction pre-request

Remove gig-progression folder seq so defeat spine runs after ability-cast;
run defeat spine at seq 31. Gather until node_depleted in interaction test
so craft spine pollution does not break the depleted-node deny case.
pull/118/head
VinPropane 2026-05-25 12:20:30 -04:00
parent 32fbcec766
commit adc34e0a9f
3 changed files with 10 additions and 7 deletions

View File

@ -1,7 +1,7 @@
meta {
name: GET gig progression after defeat spine (NEO-44)
type: http
seq: 10
seq: 31
}
docs {

View File

@ -1,11 +1,10 @@
meta {
name: Gig progression folder
seq: 1
}
docs {
NEO-44: read-only gig XP snapshot (combat defeat path — not E2.M2 skill XP).
Run order: Get gig progression → Get gig progression after defeat spine (~13s pre-request).
Run order (folder runs after ability-cast + combat-targets alphabetically): Get gig progression → Get gig progression after defeat spine (~13s pre-request).
Defeat spine resets prototype target HP via __dev/combat-targets-fixture (same as combat-targets folder) and uses slot 2 to avoid cooldown pollution from earlier folders.
Cross-link: bruno/neon-sprawl-server/ability-cast/ and combat-targets/
}

View File

@ -5,7 +5,7 @@ meta {
}
docs {
NEO-63: uses prototype_urban_bulk_delta (not alpha) so earlier interaction requests in this collection do not pre-deplete capacity. Pre-request exhausts the node (10 successful gathers), then this interact should deny with node_depleted.
NEO-63: uses prototype_urban_bulk_delta (not alpha) so earlier interaction requests in this collection do not pre-deplete capacity. Pre-request gathers until node_depleted (craft spine may consume one gather first). POST interact should deny with node_depleted.
}
script:pre-request {
@ -21,7 +21,7 @@ script:pre-request {
},
{ headers: { "Content-Type": "application/json" } },
);
for (let i = 0; i < 10; i++) {
while (true) {
const res = await axios.post(
`${baseUrl}/game/players/${playerId}/interact`,
{
@ -30,9 +30,13 @@ script:pre-request {
},
{ headers: { "Content-Type": "application/json" } },
);
if (!res.data.allowed) {
throw new Error(`expected gather ${i + 1}/10 to succeed, got ${res.data.reasonCode}`);
if (res.data?.allowed === true) {
continue;
}
if (res.data?.reasonCode === "node_depleted") {
break;
}
throw new Error(`expected gather to succeed or end with node_depleted, got ${JSON.stringify(res.data)}`);
}
}