NEO-44: Fix Bruno defeat spine for CI collection order.
Reset prototype target HP before cast chain, use slot 2 to avoid cooldown pollution, and assert +25 gig XP delta from baseline.pull/118/head
parent
9d9b53332f
commit
32fbcec766
|
|
@ -5,12 +5,13 @@ meta {
|
|||
}
|
||||
|
||||
docs {
|
||||
NEO-44 AC spine: pre-request runs four pulse casts on prototype_target_alpha (slot 1, 3.2s between).
|
||||
Asserts breach xp === 25 and salvage/refine skill xp unchanged from pre-defeat baseline.
|
||||
NEO-44 AC spine: pre-request resets prototype target HP (NEO-83 fixture), then four pulse casts on alpha (slot 2 — avoids slot 0/1 cooldown from ability-cast and combat-targets folders).
|
||||
Asserts breach xp increased by 25 from pre-spine baseline; salvage/refine skill xp unchanged.
|
||||
}
|
||||
|
||||
script:pre-request {
|
||||
const axios = require("axios");
|
||||
const { resetPrototypeCombatTargets } = require("./scripts/combat-targets-reset-helper.js");
|
||||
const baseUrl = bru.getEnvVar("baseUrl") || bru.getVar("baseUrl");
|
||||
const playerId = bru.getEnvVar("playerId") || bru.getVar("playerId");
|
||||
const jsonHeaders = { headers: { "Content-Type": "application/json" } };
|
||||
|
|
@ -26,6 +27,18 @@ script:pre-request {
|
|||
bru.setVar("neo44SalvageXpBefore", String(skillBefore.data.skills.find((x) => x.id === "salvage").xp));
|
||||
bru.setVar("neo44RefineXpBefore", String(skillBefore.data.skills.find((x) => x.id === "refine").xp));
|
||||
|
||||
const gigBefore = await axios.get(
|
||||
`${baseUrl}/game/players/${playerId}/gig-progression`,
|
||||
jsonHeaders,
|
||||
);
|
||||
const breachBefore = gigBefore.data.gigs.find((x) => x.id === "breach");
|
||||
bru.setVar(
|
||||
"neo44BreachXpBefore",
|
||||
String(breachBefore?.xp ?? 0),
|
||||
);
|
||||
|
||||
await resetPrototypeCombatTargets(bru);
|
||||
|
||||
await axios.post(
|
||||
`${baseUrl}/game/players/${playerId}/move`,
|
||||
{ schemaVersion: 1, target: { x: -5, y: 0.9, z: -5 } },
|
||||
|
|
@ -36,7 +49,7 @@ script:pre-request {
|
|||
`${baseUrl}/game/players/${playerId}/hotbar-loadout`,
|
||||
{
|
||||
schemaVersion: 1,
|
||||
slots: [{ slotIndex: 1, abilityId: "prototype_pulse" }],
|
||||
slots: [{ slotIndex: 2, abilityId: "prototype_pulse" }],
|
||||
},
|
||||
jsonHeaders,
|
||||
);
|
||||
|
|
@ -49,7 +62,7 @@ script:pre-request {
|
|||
|
||||
const castBody = {
|
||||
schemaVersion: 1,
|
||||
slotIndex: 1,
|
||||
slotIndex: 2,
|
||||
abilityId: "prototype_pulse",
|
||||
targetId: "prototype_target_alpha",
|
||||
};
|
||||
|
|
@ -87,13 +100,14 @@ script:post-response {
|
|||
}
|
||||
|
||||
tests {
|
||||
test("breach gig xp is 25 after alpha defeat", function () {
|
||||
test("breach gig xp increases by 25 after alpha defeat", function () {
|
||||
const body = res.getBody();
|
||||
expect(res.getStatus()).to.equal(200);
|
||||
expect(body.mainGigId).to.equal("breach");
|
||||
const breach = body.gigs.find((x) => x.id === "breach");
|
||||
expect(breach).to.be.an("object");
|
||||
expect(breach.xp).to.equal(25);
|
||||
const breachXpBefore = Number(bru.getVar("neo44BreachXpBefore"));
|
||||
expect(breach.xp).to.equal(breachXpBefore + 25);
|
||||
expect(breach.level).to.equal(1);
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ meta {
|
|||
|
||||
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 (depends on ability-cast defeat spine setup).
|
||||
Cross-link: bruno/neon-sprawl-server/ability-cast/
|
||||
Run order: 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/
|
||||
}
|
||||
|
|
|
|||
|
|
@ -63,7 +63,7 @@ Fourth accept should show **`targetDefeated": true`**. Fifth cast should deny **
|
|||
curl -sS "${BASE}/game/players/${ID}/gig-progression"
|
||||
```
|
||||
|
||||
Expect **`breach`** row **`xp` 25** (one defeat transition).
|
||||
Expect **`breach`** row **`xp`** increased by **25** from the pre-spine baseline (Postgres retains prior totals across the full Bruno collection).
|
||||
|
||||
## 5. Verify skill XP unchanged
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue