import './index'; describe('Ticket', () => { describe('Component vnTicketSms', () => { let controller; let $httpBackend; beforeEach(ngModule('ticket')); beforeEach(inject(($componentController, $rootScope, _$httpBackend_) => { $httpBackend = _$httpBackend_; let $scope = $rootScope.$new(); const $element = angular.element('<vn-dialog></vn-dialog>'); controller = $componentController('vnTicketSms', {$element, $scope}); controller.$.message = { input: { value: 'My SMS' } }; })); describe('onResponse()', () => { it('should perform a POST query and show a success snackbar', () => { let params = {ticketId: 11, destinationFk: 1101, destination: 111111111, message: 'My SMS'}; controller.sms = {ticketId: 11, destinationFk: 1101, destination: 111111111, message: 'My SMS'}; jest.spyOn(controller.vnApp, 'showMessage'); $httpBackend.expect('POST', `Tickets/11/sendSms`, params).respond(200, params); controller.onResponse(); $httpBackend.flush(); expect(controller.vnApp.showMessage).toHaveBeenCalledWith('SMS sent!'); }); it('should call onResponse without the destination and show an error snackbar', () => { controller.sms = {destinationFk: 1101, message: 'My SMS'}; jest.spyOn(controller.vnApp, 'showError'); controller.onResponse(); expect(controller.vnApp.showError).toHaveBeenCalledWith(`The destination can't be empty`); }); it('should call onResponse without the message and show an error snackbar', () => { controller.sms = {destinationFk: 1101, destination: 222222222}; jest.spyOn(controller.vnApp, 'showError'); controller.onResponse(); expect(controller.vnApp.showError).toHaveBeenCalledWith(`The message can't be empty`); }); }); describe('charactersRemaining()', () => { it('should return the characters remaining in a element', () => { controller.$.message = { input: { value: 'My message 0€' } }; let result = controller.charactersRemaining(); expect(result).toEqual(145); }); }); }); });