import './index.js'; describe('Route', () => { describe('Component summary', () => { let controller; let $httpBackend; beforeEach(ngModule('route')); beforeEach(inject(($componentController, _$httpBackend_) => { $httpBackend = _$httpBackend_; const $element = angular.element(''); controller = $componentController('vnRouteSummary', {$element}); controller.route = {id: 1}; })); describe('getSummary()', () => { it('should perform a query to set summary', () => { $httpBackend.when('GET', `Routes/1/summary`).respond(200, 24); controller.getSummary(); $httpBackend.flush(); expect(controller.summary).toEqual(24); }); }); describe('sumPackages()', () => { it('should calculate the packages total', () => { controller.summary = { tickets: [ {packages: 3}, {packages: 1} ] }; controller.sumPackages(); expect(controller.packagesTotal).toEqual(4); }); }); describe('goToBuscaman()', () => { it('should open buscaman with the given arguments', () => { jest.spyOn(window, 'open').mockReturnThis(); const expectedUrl = 'http://gps.buscalia.com/usuario/localizar.aspx?bmi=true&addr=46460%20Av%20Espioca%20100+to:n19%20London%20my%20street'; controller.route = {vehicleFk: 1}; const url = `Routes/${controller.route.vehicleFk}/getDeliveryPoint`; $httpBackend.when('GET', `Routes/1/summary`).respond(); $httpBackend.expectGET(url).respond('46460 Av Espioca 100'); const ticket = { id: 1, checked: true, street: 'my street', postalCode: 'n19', city: 'London' }; controller.goToBuscaman(ticket); $httpBackend.flush(); expect(window.open).toHaveBeenCalledWith(expectedUrl, '_blank'); }); }); }); });