neon-sprawl/bruno/neon-sprawl-server/inventory/Post inventory remove.bru

50 lines
1.4 KiB
Plaintext

meta {
name: POST inventory remove
type: http
seq: 4
}
docs {
NEO-55: remove stack via mutationKind remove. Pre-request seeds scrap_metal_bulk stock when needed so this request is order-independent.
}
script:pre-request {
const { ensureItemQuantity } = require("./inventory-api-helper.js");
const removeQuantity = 2;
const before = await ensureItemQuantity(bru, "scrap_metal_bulk", removeQuantity);
bru.setVar("scrapBeforeRemove", before);
bru.setVar("removeQuantity", removeQuantity);
}
post {
url: {{baseUrl}}/game/players/{{playerId}}/inventory
body: json
auth: none
}
body:json {
{
"schemaVersion": 1,
"mutationKind": "remove",
"itemId": "scrap_metal_bulk",
"quantity": 2
}
}
tests {
test("remove returns 200 with applied true and decreases 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");
const before = bru.getVar("scrapBeforeRemove");
const removeQuantity = bru.getVar("removeQuantity");
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 - removeQuantity);
});
}