62 lines
2.2 KiB
JavaScript
62 lines
2.2 KiB
JavaScript
const {models} = require('vn-loopback/server/server');
|
|
|
|
describe('Sale - replaceItem function', () => {
|
|
let options;
|
|
let tx;
|
|
const ctx = beforeAll.getCtx();
|
|
beforeAll.mockLoopBackContext();
|
|
beforeEach(async() => {
|
|
tx = await models.Sale.beginTransaction({});
|
|
options = {transaction: tx};
|
|
});
|
|
|
|
afterEach(async() => {
|
|
if (tx)
|
|
await tx.rollback();
|
|
});
|
|
|
|
it('should replace full item in sale and send notification', async() => {
|
|
const saleFk = 43;
|
|
const substitutionFk = 3;
|
|
const quantity = 15;
|
|
const ticketFk = 1000000;
|
|
|
|
const salesBefore = await models.Sale.find({where: {ticketFk}}, options);
|
|
const salesLength = salesBefore.length;
|
|
|
|
expect(1).toEqual(salesBefore.length);
|
|
|
|
await models.Sale.replaceItem(ctx, saleFk, substitutionFk, quantity, options);
|
|
const salesAfter = await models.Sale.find({where: {ticketFk}}, options);
|
|
|
|
expect(salesLength).toBeLessThan(salesAfter.length);
|
|
expect(salesAfter[0].id).toEqual(saleFk);
|
|
expect(salesAfter[salesLength].itemFk).toEqual(substitutionFk);
|
|
expect(salesAfter[salesLength].quantity).toEqual(quantity);
|
|
expect(salesAfter[0].quantity).toEqual(0);
|
|
expect(salesAfter[salesLength].concept).toMatch(/^\+/);
|
|
});
|
|
|
|
it('should replace half item in sale and send notification', async() => {
|
|
const saleFk = 43;
|
|
const substitutionFk = 3;
|
|
const quantity = 10;
|
|
const ticketFk = 1000000;
|
|
|
|
const salesBefore = await models.Sale.find({where: {ticketFk}}, options);
|
|
const salesLength = salesBefore.length;
|
|
|
|
expect(1).toEqual(salesBefore.length);
|
|
|
|
await models.Sale.replaceItem(ctx, saleFk, substitutionFk, quantity, options);
|
|
const salesAfter = await models.Sale.find({where: {ticketFk}}, options);
|
|
|
|
expect(salesLength).toBeLessThan(salesAfter.length);
|
|
expect(salesAfter[0].id).toEqual(saleFk);
|
|
expect(salesAfter[salesLength].itemFk).toEqual(substitutionFk);
|
|
expect(salesAfter[salesLength].quantity).toEqual(quantity);
|
|
expect(salesAfter[0].quantity).toEqual(5);
|
|
expect(salesAfter[salesLength].concept).toMatch(/^\+/);
|
|
});
|
|
});
|