import './index.js'; describe('Item', () => { describe('Component vnItemTax', () => { let $element; let $stateParams; let controller; let $httpBackend; beforeEach(ngModule('item')); beforeEach(angular.mock.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', () => { spyOn(controller.$.watcher, 'notifySaved'); spyOn(controller.$.watcher, 'updateOriginalData'); controller.taxes = [ {id: 37, countryFk: 1, taxClassFk: 1, country: {id: 1, country: 'España'}} ]; controller.$.watcher.data = [ {id: 37, countryFk: 1, taxClassFk: 2, country: {id: 1, country: 'España'}} ]; $httpBackend.whenPOST(`Items/updateTaxes`).respond('oki doki'); controller.submit(); $httpBackend.flush(); expect(controller.$.watcher.notifySaved).toHaveBeenCalledWith(); expect(controller.$.watcher.updateOriginalData).toHaveBeenCalledWith(); }); }); }); });