const models = require('vn-loopback/server/server').models; const LoopBackContext = require('loopback-context'); describe('invoiceIn clone()', () => { beforeAll(async() => { const activeCtx = { accessToken: {userId: 9}, http: { req: { headers: {origin: 'http://localhost'} } } }; spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ active: activeCtx }); }); it('should return the cloned invoiceIn and also clone invoiceInDueDays and invoiceInTaxes if there are any referencing the invoiceIn', async() => { const userId = 1; const ctx = { req: { accessToken: {userId: userId}, headers: {origin: 'http://localhost:5000'}, } }; const tx = await models.InvoiceIn.beginTransaction({}); const options = {transaction: tx}; try { const clone = await models.InvoiceIn.clone(ctx, 1, options); expect(clone.supplierRef).toEqual('1234(2)'); const invoiceInTaxes = await models.InvoiceInTax.find({where: {invoiceInFk: clone.id}}, options); expect(invoiceInTaxes.length).toEqual(2); const invoiceInDueDays = await models.InvoiceInDueDay.find({where: {invoiceInFk: clone.id}}, options); expect(invoiceInDueDays.length).toEqual(2); await tx.rollback(); } catch (e) { await tx.rollback(); throw e; } }); });