Skip to content

Commit

Permalink
Merge ec70189 into 6f49ad8
Browse files Browse the repository at this point in the history
  • Loading branch information
niekcandaele committed Jul 4, 2020
2 parents 6f49ad8 + ec70189 commit a9843e9
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 27 deletions.
43 changes: 16 additions & 27 deletions api/helpers/sdtd/validate-item-name.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
var sevenDays = require('machinepack-7daystodiewebapi');

const SdtdApi = require('7daystodie-api-wrapper')

module.exports = {


Expand Down Expand Up @@ -42,37 +44,24 @@ module.exports = {
let server = await SdtdServer.findOne(inputs.serverId);

if (_.isUndefined(server)) {
return exits.success(false);
return exits.error(new Error("Invalid server"));
}

sevenDays.listItems({
ip: server.ip,
port: server.webPort,
authName: server.authName,
authToken: server.authToken,
itemToSearch: inputs.item
}).exec({
success: (response) => {
if (!response) {
return exits.success(false)
}
let foundItem = false

response.map(itemName => {

if (itemName === inputs.itemName) {
foundItem = true
}
})

return exits.success(foundItem)
},
error: (error) => {
return exits.success(false)
}
});
try {
const itemsFound = (await sails.helpers.sdtdApi.executeConsoleCommand(server, `listitems ${inputs.itemName}`))
.result
.split('\n')
.map(itemName => itemName.trim());


const itemFound = !!itemsFound.filter(_ => _ === inputs.itemName).length;


return exits.success(itemFound);
} catch (e) {
exits.error(e);
}

}


Expand Down
43 changes: 43 additions & 0 deletions test/unit/helpers/sdtd/validate-item-name.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
describe('HELPER sdtd/validate-item-name', () => {

beforeEach(() => {
sails.helpers.sdtdApi.executeConsoleCommand = sandbox.stub().returns({
result: ` ammo9mmBulletBall
Listed 1 matching items.`
});
})

it('Validates an item', async () => {

const trueResult = await sails.helpers.sdtd.validateItemName(sails.testServer.id, "ammo9mmBulletBall");

expect(trueResult).to.be.an('boolean');
expect(trueResult).to.be.true;

const falseResult = await sails.helpers.sdtd.validateItemName(sails.testServer.id, "some nonexisting item");

expect(falseResult).to.be.an('boolean');
expect(falseResult).to.be.false;
});

it('Errors when no server is given', async () => {
await expect(sails.helpers.sdtd.validateItemName(null, "ammo9mmBulletBall")).to.eventually.be.rejectedWith(Error)
});

it('Errors when an unexisting server is given', async () => {
const fakeServer = {}
Object.assign(fakeServer, sails.testServer)

fakeServer.id += 5
await expect(sails.helpers.sdtd.validateItemName(fakeServer.id, "ammo9mmBulletBall")).to.eventually.be.rejectedWith(Error)
});

it('Throws when a request to the server fails', async () => {
sails.helpers.sdtdApi.executeConsoleCommand = sandbox.stub().throws(Error)
await expect(sails.helpers.sdtd.validateItemName(sails.testServer.id, "ammo9mmBulletBall")).to.eventually.be.rejectedWith(Error)
});
});




0 comments on commit a9843e9

Please sign in to comment.