neon-sprawl/bruno/neon-sprawl-server/quest-progress/Get quest progress default.bru

53 lines
1.6 KiB
Plaintext

meta {
name: GET quest progress default
type: http
seq: 2
}
docs {
NEO-119: fresh dev-local-1 row before any quest accept — all five catalog quests not_started.
Pre-request clears all prototype quest progress so the test is self-contained across collection runs.
}
script:pre-request {
const { resetAllPrototypeQuestProgress } = require("./scripts/bruno-dev-fixture-helper");
await resetAllPrototypeQuestProgress(bru);
}
get {
url: {{baseUrl}}/game/players/{{playerId}}/quest-progress
body: none
auth: none
}
tests {
test("returns 200 JSON with schema v1", function () {
expect(res.getStatus()).to.equal(200);
const body = res.getBody();
expect(body.schemaVersion).to.equal(1);
expect(body.playerId).to.equal(bru.getEnvVar("playerId") || bru.getVar("playerId"));
expect(body.quests).to.be.an("array");
expect(body.quests.length).to.equal(5);
});
test("all prototype quests are not_started with empty counters", function () {
const body = res.getBody();
const expectedIds = [
"prototype_quest_combat_intro",
"prototype_quest_gather_intro",
"prototype_quest_grid_contract",
"prototype_quest_operator_chain",
"prototype_quest_refine_intro",
];
const actualIds = body.quests.map((row) => row.questId);
expect(actualIds).to.eql(expectedIds);
for (const row of body.quests) {
expect(row.status).to.equal("not_started");
expect(row.currentStepIndex).to.equal(0);
expect(row.objectiveCounters).to.eql({});
expect(row.completedAt).to.equal(undefined);
expect(row.completionRewardSummary).to.equal(undefined);
}
});
}