import './index'; describe('Client', () => { describe('Component vnClientCreditCreate', () => { let controller; let $httpBackend; let $state; let $scope; let client; beforeEach(ngModule('client')); beforeEach(angular.mock.inject(($componentController, _$httpBackend_, $rootScope, _$state_) => { $scope = $rootScope.$new(); $scope.confirmation = {show: () => { return { then: () => {} }; }}; $scope.watcher = { submit: () => { return { then: callback => { callback(); } }; } }; client = {credit: 0}; $state = _$state_; $state.params.id = 101; $httpBackend = _$httpBackend_; controller = $componentController('vnClientCreditCreate', {$scope, $state}); })); describe('onSubmit()', () => { it('should perform a query to check (GET) if the client has an active recovery', () => { $httpBackend.whenGET(`/client/api/Recoveries/101/hasActiveRecovery`).respond(true); $httpBackend.expectGET(`/client/api/Recoveries/101/hasActiveRecovery`); controller.onSubmit(); $httpBackend.flush(); }); it('should call show() method when the client have a recovery', () => { spyOn(controller.$scope.confirmation, 'show'); $httpBackend.whenGET(`/client/api/Recoveries/101/hasActiveRecovery`).respond(true); $httpBackend.expectGET(`/client/api/Recoveries/101/hasActiveRecovery`); controller.onSubmit(); $httpBackend.flush(); expect(controller.$scope.confirmation.show).toHaveBeenCalledWith(); }); it('should call addCredit() method when the client doesnt have a recovery', () => { spyOn(controller, 'addCredit'); $httpBackend.whenGET(`/client/api/Recoveries/101/hasActiveRecovery`).respond(false); $httpBackend.expectGET(`/client/api/Recoveries/101/hasActiveRecovery`); controller.onSubmit(); $httpBackend.flush(); expect(controller.addCredit).toHaveBeenCalledWith(); }); }); describe('cancel()', () => { it('should call goToIndex()', () => { spyOn(controller, 'goToIndex'); controller.cancel(); expect(controller.goToIndex).toHaveBeenCalledWith(); }); }); describe('returnDialog()', () => { it('should call addCredit() when is called with ACCEPT', () => { spyOn(controller, 'addCredit'); controller.returnDialog('ACCEPT'); expect(controller.addCredit).toHaveBeenCalledWith(); }); }); describe('addCredit()', () => { it('should call the function go() on $state to go to the credit list', () => { spyOn($state, 'go'); client.credit = 1; controller.addCredit(); expect(controller.$state.go).toHaveBeenCalledWith('client.card.credit.index'); }); }); }); });