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);
|
|
|
|
});
|
|
|
|
});
|