neon-sprawl/bruno/neon-sprawl-server/skill-definitions/Get skill definitions.bru

47 lines
1.4 KiB
Plaintext

meta {
name: GET skill definitions
type: http
seq: 1
}
get {
url: {{baseUrl}}/game/world/skill-definitions
body: none
auth: none
}
tests {
test("returns 200 JSON with schema v1 and skills 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.skills).to.be.an("array");
expect(body.skills.length).to.equal(3);
});
test("skills are ascending by id (ordinal)", function () {
const body = res.getBody();
const ids = body.skills.map((x) => x.id);
const sorted = [...ids].sort((a, b) => a.localeCompare(b));
expect(ids).to.eql(sorted);
});
test("frozen prototype trio is present", function () {
const body = res.getBody();
const ids = new Set(body.skills.map((x) => x.id));
expect(ids.has("salvage")).to.equal(true);
expect(ids.has("refine")).to.equal(true);
expect(ids.has("intrusion")).to.equal(true);
});
test("salvage row matches catalog", function () {
const body = res.getBody();
const row = body.skills.find((x) => x.id === "salvage");
expect(row).to.be.an("object");
expect(row.displayName).to.equal("Salvage");
expect(row.category).to.equal("gather");
expect(row.allowedXpSourceKinds).to.include.members(["activity", "mission_reward"]);
});
}