const app = require('vn-loopback/server/server'); describe('claimBeginning', () => { let ticket; let refundTicketObservations; let refundTicketSales; let salesInsertedInClaimEnd; afterAll(async() => { let promises = []; promises.push(app.models.Ticket.destroyById(ticket.id)); promises.push(app.models.Ticket.rawSql(`DELETE FROM vn.orderTicket WHERE ticketFk ='${ticket.id}';`)); await Promise.all(promises); }); describe('importToNewRefundTicket()', () => { it('should create a new ticket with negative sales, save an observation, update the state and insert the negative sales into claimEnd', async() => { let ctxOfSalesAssistant = {req: {accessToken: {userId: 21}}}; let claimId = 1; ticket = await app.models.ClaimBeginning.importToNewRefundTicket(ctxOfSalesAssistant, claimId); await app.models.Ticket.findById(ticket.id); refundTicketSales = await app.models.Sale.find({where: {ticketFk: ticket.id}}); refundTicketObservations = await app.models.TicketObservation.find({where: {ticketFk: ticket.id}}); let refundTicketState = await app.models.TicketState.findById(ticket.id); salesInsertedInClaimEnd = await app.models.ClaimEnd.find({where: {claimFk: claimId}}); expect(refundTicketSales.length).toEqual(1); expect(refundTicketSales[0].quantity).toEqual(-5); expect(refundTicketObservations[0].description).toEqual('Reclama ticket: 11'); expect(refundTicketState.stateFk).toEqual(16); expect(salesInsertedInClaimEnd[0].saleFk).toEqual(refundTicketSales[0].id); }); }); });