const app = require('vn-loopback/server/server'); // #1486 back test updateDiscount xdescribe('sale updateDiscount()', () => { const originalSaleId = 14; let componentId; let originalSale; 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(); }); afterAll(async done => { originalSale.save(); saleComponentsRestore.save(); 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() => { let createdSaleComponent = await app.models.SaleComponent.findOne({ where: { componentFk: componentId, saleFk: originalSaleId } }); expect(createdSaleComponent).toBeNull(); const ticketId = 8; const sales = [ { id: originalSaleId, discount: 100} ]; await app.models.Sale.updateDiscount(ticketId, sales); let updatedSale = await app.models.Sale.findById(originalSaleId); createdSaleComponent = await app.models.SaleComponent.findOne({ where: { componentFk: componentId, saleFk: originalSaleId } }); expect(createdSaleComponent.componentFk).toEqual(componentId); expect(updatedSale.discount).toEqual(100); }); });