diff --git a/bruno/neon-sprawl-server/encounter-definitions/Get encounter definitions.bru b/bruno/neon-sprawl-server/encounter-definitions/Get encounter definitions.bru new file mode 100644 index 0000000..0646c75 --- /dev/null +++ b/bruno/neon-sprawl-server/encounter-definitions/Get encounter definitions.bru @@ -0,0 +1,54 @@ +meta { + name: GET encounter definitions + type: http + seq: 1 +} + +get { + url: {{baseUrl}}/game/world/encounter-definitions + body: none + auth: none +} + +tests { + test("returns 200 JSON with schema v1 and encounters array", function () { + expect(res.getStatus()).to.equal(200); + expect(res.getHeader("content-type")).to.contain("application/json"); + const body = res.getBody(); + expect(body.schemaVersion).to.equal(1); + expect(body.encounters).to.be.an("array"); + expect(body.encounters.length).to.equal(1); + }); + + test("encounters are ascending by id (ordinal)", function () { + const body = res.getBody(); + const ids = body.encounters.map((x) => x.id); + const sorted = [...ids].sort((a, b) => (a < b ? -1 : a > b ? 1 : 0)); + expect(ids).to.eql(sorted); + }); + + test("prototype_combat_pocket row matches catalog", function () { + const body = res.getBody(); + const row = body.encounters.find((x) => x.id === "prototype_combat_pocket"); + expect(row).to.be.an("object"); + expect(row.displayName).to.equal("Prototype Combat Pocket"); + expect(row.completionCriteria).to.eql({ kind: "defeat_all_targets" }); + expect(row.requiredNpcInstanceIds).to.eql([ + "prototype_npc_melee", + "prototype_npc_ranged", + "prototype_npc_elite", + ]); + }); + + test("nested rewardTable matches frozen grants", function () { + const body = res.getBody(); + const row = body.encounters.find((x) => x.id === "prototype_combat_pocket"); + expect(row.rewardTable).to.be.an("object"); + expect(row.rewardTable.id).to.equal("prototype_combat_pocket_clear"); + expect(row.rewardTable.displayName).to.equal("Prototype Combat Pocket Clear"); + expect(row.rewardTable.fixedGrants).to.eql([ + { itemId: "scrap_metal_bulk", quantity: 10 }, + { itemId: "contract_handoff_token", quantity: 1 }, + ]); + }); +} diff --git a/bruno/neon-sprawl-server/encounter-definitions/folder.bru b/bruno/neon-sprawl-server/encounter-definitions/folder.bru new file mode 100644 index 0000000..7aa793e --- /dev/null +++ b/bruno/neon-sprawl-server/encounter-definitions/folder.bru @@ -0,0 +1,3 @@ +meta { + name: encounter-definitions +}