salix/modules/ticket/back/methods/sale/specs/updateDiscount.spec.js

93 lines
2.6 KiB
JavaScript
Raw Normal View History

2019-05-30 06:57:25 +00:00
const app = require('vn-loopback/server/server');
// #1486 back test updateDiscount
xdescribe('sale updateDiscount()', () => {
2019-06-03 10:00:48 +00:00
const originalSaleId = 14;
let componentId;
2019-05-30 06:57:25 +00:00
let originalSale;
2019-06-03 10:00:48 +00:00
let saleComponentsRestore;
beforeAll(async done => {
originalSale = await app.models.Sale.findById(originalSaleId);
let manaDiscount = await app.models.ComponentRate.findOne({where: {code: 'mana'}});
componentId = manaDiscount.id;
saleComponentsRestore = await app.models.SaleComponent.findOne({
where: {
componentFk: componentId,
saleFk: originalSaleId
}
});
done();
});
2019-05-30 06:57:25 +00:00
afterAll(async done => {
originalSale.save();
2019-06-03 10:00:48 +00:00
saleComponentsRestore.save();
2019-05-30 06:57:25 +00:00
done();
});
it('should throw an error if any sale discount is not a number', async() => {
let error;
const ticketId = 1;
const sales = [
{discount: 'pepinillos'}
];
try {
await app.models.Sale.updateDiscount(ticketId, sales);
} catch (err) {
error = err;
}
expect(error.message).toEqual('The value should be a number');
});
it('should throw an error if the ticket is invoiced already', async() => {
let error;
const ticketId = 7;
const sales = [
{discount: 100}
];
try {
await app.models.Sale.updateDiscount(ticketId, sales);
} catch (err) {
error = err;
}
expect(error.message).toEqual(`The sales of this ticket can't be modified`);
});
it('should update the discount if the salesPerson has mana', async() => {
2019-06-03 10:00:48 +00:00
let createdSaleComponent = await app.models.SaleComponent.findOne({
2019-05-30 06:57:25 +00:00
where: {
componentFk: componentId,
2019-06-03 10:00:48 +00:00
saleFk: originalSaleId
2019-05-30 06:57:25 +00:00
}
});
expect(createdSaleComponent).toBeNull();
const ticketId = 8;
const sales = [
{
2019-06-03 10:00:48 +00:00
id: originalSaleId,
2019-05-30 06:57:25 +00:00
discount: 100}
];
await app.models.Sale.updateDiscount(ticketId, sales);
2019-06-03 10:00:48 +00:00
let updatedSale = await app.models.Sale.findById(originalSaleId);
2019-05-30 06:57:25 +00:00
createdSaleComponent = await app.models.SaleComponent.findOne({
where: {
componentFk: componentId,
2019-06-03 10:00:48 +00:00
saleFk: originalSaleId
2019-05-30 06:57:25 +00:00
}
});
expect(createdSaleComponent.componentFk).toEqual(componentId);
expect(updatedSale.discount).toEqual(100);
});
});