const app = require('vn-loopback/server/server'); describe('loopback model address', () => { let createdAddressId; afterAll(async() => { let address = await app.models.Address.findById(1); let client = await app.models.Client.findById(101); await address.updateAttribute('isDefaultAddress', true); await app.models.Address.destroyById(createdAddressId); await client.updateAttribute('isEqualizated', false); }); describe('observe()', () => { it('should throw an error when deactivating a consignee if its the default address', async() => { let error; let address = await app.models.Address.findById(1); await address.updateAttribute('isActive', false) .catch(e => { error = e; expect(error.message).toEqual('The default consignee can not be unchecked'); }); expect(error).toBeDefined(); }); it('should set isDefaultAddress to false of all the addresses for a given client', async() => { let previousDefaultAddress = await app.models.Address.findById(1); expect(previousDefaultAddress.isDefaultAddress).toBeTruthy(); let address = await app.models.Address.findById(121); expect(address.isDefaultAddress).toBeFalsy(); let defaultAddress = await address.updateAttribute('isDefaultAddress', true); expect(defaultAddress.isDefaultAddress).toBeTruthy(); let noLongerDefaultAddress = await app.models.Address.findById(1); expect(noLongerDefaultAddress.isDefaultAddress).toBeFalsy(); }); it('should set isEqualizated to true of a given Client to trigger any new address to have it', async() => { let client = await app.models.Client.findById(101); expect(client.isEqualizated).toBeFalsy(); await client.updateAttribute('isEqualizated', true); let newAddress = await app.models.Address.create({ clientFk: 101, agencyModeFk: 5, city: 'here', isActive: true, isDefaultAddress: false, mobile: '555555555', nickname: 'Test address', phone: '555555555', postalCode: '00000', provinceFk: 1, street: 'Test address' }); expect(newAddress.isEqualizated).toBeTruthy(); createdAddressId = newAddress.id; }); }); });