const app = require('vn-loopback/server/server'); const LoopBackContext = require('loopback-context'); describe('claimBeginning', () => { const claimManagerId = 72; let ticket; let refundTicketSales; let salesInsertedInClaimEnd; const activeCtx = { accessToken: {userId: claimManagerId}, }; const ctx = {req: activeCtx}; afterAll(async done => { try { await app.models.Ticket.destroyById(ticket.id); await app.models.Ticket.rawSql(`DELETE FROM vn.orderTicket WHERE ticketFk ='${ticket.id}';`); } catch (error) { console.error(error); } done(); }); describe('importToNewRefundTicket()', () => { it('should create a new ticket with negative sales and insert the negative sales into claimEnd', async() => { spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ active: activeCtx }); let claimId = 1; ticket = await app.models.ClaimBeginning.importToNewRefundTicket(ctx, claimId); refundTicketSales = await app.models.Sale.find({where: {ticketFk: ticket.id}}); salesInsertedInClaimEnd = await app.models.ClaimEnd.find({where: {claimFk: claimId}}); expect(refundTicketSales.length).toEqual(1); expect(refundTicketSales[0].quantity).toEqual(-5); expect(salesInsertedInClaimEnd[0].saleFk).toEqual(refundTicketSales[0].id); }); }); });