const models = require('vn-loopback/server/server').models; const LoopBackContext = require('loopback-context'); describe('loopback model Supplier', () => { let supplierOne; let supplierTwo; beforeAll(async() => { supplierOne = await models.Supplier.findById(1); supplierTwo = await models.Supplier.findById(442); }); afterAll(async() => { await supplierOne.updateAttribute('payMethodFk', supplierOne.payMethodFk); await supplierTwo.updateAttribute('payMethodFk', supplierTwo.payMethodFk); }); describe('payMethodFk', () => { it('should throw an error when attempting to set an invalid payMethod id in the supplier', async() => { let error; const expectedError = 'You can not select this payment method without a registered bankery account'; const supplier = await models.Supplier.findById(1); await supplier.updateAttribute('payMethodFk', 8) .catch(e => { error = e; expect(error.message).toContain(expectedError); }); expect(error).toBeDefined(); }); it('should not throw if the payMethod id is valid', async() => { const activeCtx = { accessToken: {userId: 9}, http: { req: { headers: {origin: 'http://localhost'} } } }; spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({ active: activeCtx }); let error; const supplier = await models.Supplier.findById(442); await supplier.updateAttribute('payMethodFk', 4) .catch(e => { error = e; }); expect(error).not.toBeDefined(); }); }); });