NEO-139: reset faction standing before default Bruno GET.

Seq 2 pre-request clears prototype faction rows so re-runs pass after operator-chain flows leave +15 standing.
pull/179/head
VinPropane 2026-06-16 17:50:07 -04:00
parent 329028429d
commit 7347b3b3b3
3 changed files with 29 additions and 4 deletions

View File

@ -6,8 +6,12 @@ meta {
docs { docs {
NEO-139: per-player standing snapshot for all catalog factions. NEO-139: per-player standing snapshot for all catalog factions.
Fresh in-memory server (or reset standing) returns neutral 0 for both prototype factions. Pre-request clears prototype faction standing via POST …/__dev/quest-fixture resetFactionIds so re-runs stay neutral after seq 4 or quest-progress operator-chain flows.
Postgres may retain prior standing until reset — restart server or clear player_faction_standing for dev-local-1. }
script:pre-request {
const { resetPrototypeFactionStanding } = require("./scripts/bruno-dev-fixture-helper");
await resetPrototypeFactionStanding(bru);
} }
get { get {

View File

@ -3,6 +3,6 @@ meta {
} }
docs { docs {
Run seq 13 on a fresh dev player for neutral standing defaults. Run seq 2 self-resets faction standing before asserting neutral defaults.
Seq 4 (operator chain) leaves Grid Operators standing at 15 — re-run seq 2 only after server restart or standing reset, or expect non-zero values. Seq 4 (operator chain) leaves Grid Operators standing at 15 — expected; re-run seq 2 anytime to verify reset + neutral read.
} }

View File

@ -47,6 +47,25 @@ const ALL_PROTOTYPE_QUEST_IDS = [
"prototype_quest_refine_intro", "prototype_quest_refine_intro",
]; ];
const PROTOTYPE_FACTION_IDS = [
"prototype_faction_grid_operators",
"prototype_faction_rust_collective",
];
async function resetPrototypeFactionStanding(bru) {
const { baseUrl, playerId, jsonHeaders } = resolveConfig(bru);
const response = await axios.post(
`${baseUrl}/game/players/${playerId}/__dev/quest-fixture`,
{ schemaVersion: 1, resetFactionIds: PROTOTYPE_FACTION_IDS },
jsonHeaders,
);
if (response.status !== 200 || response.data?.applied !== true) {
throw new Error(
`quest-fixture resetFactionIds failed: ${response.status} ${JSON.stringify(response.data)}`,
);
}
}
async function assertAllPrototypeQuestsNotStarted(bru) { async function assertAllPrototypeQuestsNotStarted(bru) {
const { baseUrl, playerId } = resolveConfig(bru); const { baseUrl, playerId } = resolveConfig(bru);
const response = await axios.get(`${baseUrl}/game/players/${playerId}/quest-progress`, { const response = await axios.get(`${baseUrl}/game/players/${playerId}/quest-progress`, {
@ -91,7 +110,9 @@ module.exports = {
resetAllPrototypeQuestProgress, resetAllPrototypeQuestProgress,
resetGatherIntroQuestProgress, resetGatherIntroQuestProgress,
resetGatherIntroSpine, resetGatherIntroSpine,
resetPrototypeFactionStanding,
clearInventory, clearInventory,
assertAllPrototypeQuestsNotStarted, assertAllPrototypeQuestsNotStarted,
ALL_PROTOTYPE_QUEST_IDS, ALL_PROTOTYPE_QUEST_IDS,
PROTOTYPE_FACTION_IDS,
}; };