50 lines
1.5 KiB
Plaintext
50 lines
1.5 KiB
Plaintext
meta {
|
|
name: POST inventory add
|
|
type: http
|
|
seq: 2
|
|
}
|
|
|
|
docs {
|
|
NEO-55: add stack via mutationKind add. Pre-request records scrap_metal_bulk baseline so assertions are order-independent.
|
|
}
|
|
|
|
script:pre-request {
|
|
const { getInventory, sumItemQuantity } = require("./scripts/inventory-api-helper.js");
|
|
const inventory = await getInventory(bru);
|
|
bru.setVar("scrapBeforeAdd", sumItemQuantity(inventory, "scrap_metal_bulk"));
|
|
bru.setVar("addQuantity", 5);
|
|
}
|
|
|
|
post {
|
|
url: {{baseUrl}}/game/players/{{playerId}}/inventory
|
|
body: json
|
|
auth: none
|
|
}
|
|
|
|
body:json {
|
|
{
|
|
"schemaVersion": 1,
|
|
"mutationKind": "add",
|
|
"itemId": "scrap_metal_bulk",
|
|
"quantity": 5
|
|
}
|
|
}
|
|
|
|
tests {
|
|
test("add returns 200 with applied true and increases scrap by requested quantity", function () {
|
|
expect(res.getStatus()).to.equal(200);
|
|
const body = res.getBody();
|
|
expect(body.schemaVersion).to.equal(1);
|
|
expect(body.applied).to.equal(true);
|
|
expect(body.reasonCode).to.equal(null);
|
|
expect(body.inventory).to.be.an("object");
|
|
expect(body.inventory.playerId).to.equal(bru.getEnvVar("playerId") || bru.getVar("playerId"));
|
|
const before = bru.getVar("scrapBeforeAdd");
|
|
const addQuantity = bru.getVar("addQuantity");
|
|
const after = [...body.inventory.bagSlots, ...body.inventory.equipmentSlots]
|
|
.filter((slot) => slot.itemId === "scrap_metal_bulk")
|
|
.reduce((total, slot) => total + slot.quantity, 0);
|
|
expect(after).to.equal(before + addQuantity);
|
|
});
|
|
}
|