Tarea #533 /sale/removes.js Backend unit tests

This commit is contained in:
gerard 2018-08-21 12:56:32 +02:00
parent ea785bd9a1
commit 6f8fa86786
2 changed files with 45 additions and 1 deletions

View File

@ -22,12 +22,15 @@ module.exports = Self => {
});
Self.removes = async params => {
console.log(params);
let thisTicketIsEditable = await Self.app.models.Ticket.isEditable(params.actualTicketFk);
if (!thisTicketIsEditable)
throw new UserError(`The sales of this ticket can't be modified`);
let promises = [];
for (let i = 0; i < params.sales.length; i++) {
await Self.app.models.Sale.destroyById(params.sales[i].id);
promises.push(Self.app.models.Sale.destroyById(params.sales[i].id));
}
return Promise.all(promises);
};
};

View File

@ -0,0 +1,41 @@
const app = require(`${servicesDir}/ticket/server/server`);
const restoreFixtures = require(`${servicesDir}/db/testing_fixtures`);
describe('sale removes()', () => {
let sqlStatements = {deletes: ``, inserts: `
INSERT INTO vn2008.Movimientos (Id_Movimiento, Id_Article, Id_Ticket, Concepte, Cantidad, Preu, Descuento, CostFixat, Reservado, OK, PrecioFijado, odbc_date) VALUES ('1', '1', '1', 'Gem of Time', '5.00', '23.50', '0', '0.00', '0', '0', '0', '2018-08-20 00:00:00');
INSERT INTO vn2008.Movimientos (Id_Movimiento, Id_Article, Id_Ticket, Concepte, Cantidad, Preu, Descuento, CostFixat, Reservado, OK, PrecioFijado, odbc_date) VALUES ('2', '2', '1', 'Gem of Mind', '10.00', '4.50', '0', '0.00', '0', '0', '0', '2018-08-20 00:00:00');
`, updates: ``};
afterAll(() => {
restoreFixtures(sqlStatements);
});
it('should throw an error if the ticket of the given sales is not editable', async() => {
let error;
let params = {
sales: [{id: 1, instance: 0}, {id: 2, instance: 1}],
actualTicketFk: 2
};
try {
await app.models.Sale.removes(params);
} catch (e) {
error = e;
}
expect(error).toEqual(new Error(`The sales of this ticket can't be modified`));
});
it('should delete the sales', async() => {
let params = {
sales: [{id: 1, instance: 0}, {id: 2, instance: 1}],
actualTicketFk: 1
};
let res = await app.models.Sale.removes(params);
expect(res).toEqual([{count: 1}, {count: 1}]);
});
});