import './index.js'; import UserError from 'core/lib/user-error'; describe('Ticket component vnTicketService', () => { let controller; let $httpBackend; let $httpParamSerializer; let $scope; let $element; beforeEach(angular.mock.module('ticket', $translateProvider => { $translateProvider.translations('en', {}); })); beforeEach(angular.mock.inject(($componentController, _$httpBackend_, _$httpParamSerializer_, $rootScope) => { $element = angular.element(`
`); $httpBackend = _$httpBackend_; $httpParamSerializer = _$httpParamSerializer_; $scope = $rootScope.$new(); controller = $componentController('vnTicketService', {$scope, $element}); })); describe('getDefaultTaxClass', () => { it('should set the default tax class in the controller', () => { const config = { filter: { where: { code: 'G' } } }; let serializedParams = $httpParamSerializer(config); $httpBackend.when('GET', `/api/TaxClasses/findOne?${serializedParams}`).respond({id: 4000, name: 'Whatever', code: 'GG'}); $httpBackend.expect('GET', `/api/TaxClasses/findOne?${serializedParams}`); controller.getDefaultTaxClass(); $httpBackend.flush(); expect(controller.defaultTaxClass.code).toEqual('GG'); }); }); describe('onNewServiceTypeResponse', () => { it(`should throw an error if the new service description is empty`, () => { controller.newServiceType = {name: undefined}; let error; try { controller.onNewServiceTypeResponse('ACCEPT'); } catch (e) { error = e.message; } expect(error).toBe(`Name can't be empty`); }); it('should set the description of the selected service upon service type creation', () => { controller.services = [ {id: 1, description: 'not too great service'} ]; controller.newServiceType = {name: 'totally new stuff'}; controller.currentServiceIndex = 0; $httpBackend.when('POST', '/api/TicketServiceTypes').respond({id: 4001, name: 'great service!'}); $httpBackend.expect('POST', '/api/TicketServiceTypes'); controller.onNewServiceTypeResponse('ACCEPT'); $httpBackend.flush(); expect(controller.services[0].description).toEqual('great service!'); }); }); });