const app = require('vn-loopback/server/server'); const LoopBackContext = require('loopback-context'); describe('ticket setDelivered()', () => { const userId = 50; const activeCtx = { accessToken: {userId: userId}, }; let ticketOne; let ticketTwo; beforeAll(async done => { spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ active: activeCtx }); try { let originalTicketOne = await app.models.Ticket.findById(8); let originalTicketTwo = await app.models.Ticket.findById(10); originalTicketOne.id = null; originalTicketTwo.id = null; ticketOne = await app.models.Ticket.create(originalTicketOne); ticketTwo = await app.models.Ticket.create(originalTicketTwo); } catch (error) { console.error(error); } done(); }); afterAll(async done => { try { await app.models.Ticket.destroyById(ticketOne.id); await app.models.Ticket.destroyById(ticketTwo.id); } catch (error) { console.error(error); } done(); }); it('should return the state which has been applied to the given tickets', async() => { let ctx = {req: {accessToken: {userId: 49}}}; let delivered = await app.models.State.findOne({where: {code: 'delivered'}, fields: ['id']}); let params = [ticketOne.id, ticketTwo.id]; let state = await app.models.TicketTracking.setDelivered(ctx, params); expect(state.id).toEqual(delivered.id); // restores await app.models.TicketTracking.destroyById(state.id); }); });