import './index.js'; describe('Item', () => { describe('Component vnItemTax', () => { let $element; let $stateParams; let controller; let $httpBackend; beforeEach(ngModule('item')); beforeEach(inject((_$httpBackend_, $rootScope, _$stateParams_, $compile) => { $stateParams = _$stateParams_; $stateParams.id = 1; $httpBackend = _$httpBackend_; $httpBackend.whenRoute('GET', 'TaxClasses') .respond([ {id: 1, description: 'Reduced VAT', code: 'R'}, {id: 2, description: 'General VAT', code: 'G'} ]); $httpBackend.whenRoute('GET', 'Items/:id/taxes') .respond([ {id: 1, taxClassFk: 1} ]); $element = $compile(` { $element.remove(); }); describe('getTaxes()', () => { it('should perform a query to set the array of taxes into the controller', () => { $httpBackend.flush(); expect(controller.taxes[0].id).toEqual(1); expect(controller.taxes[0].taxClassFk).toEqual(1); }); }); describe('submit()', () => { it('should perform a post to update taxes', () => { jest.spyOn(controller.$.watcher, 'notifySaved'); jest.spyOn(controller.$.watcher, 'updateOriginalData'); controller.$onInit(); $httpBackend.flush(); controller.taxes.push({id: 3, description: 'General VAT', code: 'G'}); $httpBackend.whenPOST(`Items/updateTaxes`).respond(true); controller.submit(); $httpBackend.flush(); expect(controller.$.watcher.notifySaved).toHaveBeenCalledWith(); expect(controller.$.watcher.updateOriginalData).toHaveBeenCalledWith(); }); }); }); });