const app = require('vn-loopback/server/server'); const LoopBackContext = require('loopback-context'); describe('invoiceOut delete()', () => { const invoiceOutId = 2; let originalInvoiceOut; let originalTicket; const userId = 106; const activeCtx = { accessToken: {userId: userId}, }; it('should check that there is one ticket in the target invoiceOut', async() => { const invoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); const tickets = await app.models.Ticket.find({where: {refFk: invoiceOut.ref}}); expect(tickets.length).toEqual(1); expect(tickets[0].id).toEqual(3); }); it(`should delete the target invoiceOut then check the ticket doesn't have a refFk anymore`, async() => { spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ active: activeCtx }); originalInvoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); await app.models.InvoiceOut.delete(invoiceOutId); originalTicket = await app.models.Ticket.findById(3); const deletedInvoiceOut = await app.models.InvoiceOut.findById(invoiceOutId); expect(deletedInvoiceOut).toBeNull(); expect(originalTicket.refFk).toBeNull(); // restores const restoredInvoiceOut = await app.models.InvoiceOut.create(originalInvoiceOut); await restoredInvoiceOut.updateAttribute('ref', originalInvoiceOut.ref); await originalTicket.updateAttribute('refFk', restoredInvoiceOut.ref); }); });