meta { name: Accept grid contract after operator chain type: http seq: 11 } docs { NEO-138: complete operator chain via HTTP quest flow (rep grant +15 Grid Operators), then accept prototype_quest_grid_contract succeeds without manual standing seed. Pre-request runs operator-chain-quest-flow-helper (gather/combat/refine intros + chain steps). Standing GET assertion: faction-standing/Get faction standing after operator chain.bru (seq 4). Accept auto-completes: operator-chain reward already granted survey_drone_kit, satisfying grid contract inventory_has_item objective on activation. } script:pre-request { const { completeOperatorChainQuestFlow } = require("./scripts/operator-chain-quest-flow-helper"); await completeOperatorChainQuestFlow(bru); } post { url: {{baseUrl}}/game/players/{{playerId}}/quests/prototype_quest_grid_contract/accept body: json auth: none } body:json { { "schemaVersion": 1 } } tests { test("accepts grid contract when operator chain rep grant met minStanding", function () { expect(res.getStatus()).to.equal(200); const body = res.getBody(); expect(body.schemaVersion).to.equal(1); expect(body.accepted).to.equal(true); expect(body.reasonCode).to.equal(undefined); expect(body.quest).to.be.an("object"); expect(body.quest.questId).to.equal("prototype_quest_grid_contract"); expect(body.quest.status).to.equal("completed"); expect(body.quest.completionRewardSummary).to.be.an("object"); expect(body.quest.completionRewardSummary.itemGrants).to.eql([]); expect(body.quest.completionRewardSummary.skillXpGrants).to.eql([]); expect(body.quest.completionRewardSummary.reputationGrants).to.eql([ { factionId: "prototype_faction_rust_collective", amount: 10 }, ]); }); }