describe('CreateTaskV2Controller', function () { 'use strict'; var ctrl, $controller, $rootScope, $scope, configurationModel, ticketModel, modalInstance, createTicketModel, deferred, $httpBackend, systemAlertService; beforeEach(module('myitsmApp')); beforeEach(inject(function (_$controller_, _$rootScope_, _configurationModel_, _ticketModel_, _createTicketModel_, $q, $injector, _systemAlertService_) { $controller = _$controller_; $rootScope = _$rootScope_; configurationModel = _configurationModel_; ticketModel = _ticketModel_; $scope = $rootScope.$new(); createTicketModel = _createTicketModel_; deferred = $q.defer(); $httpBackend = $injector.get('$httpBackend'); systemAlertService = _systemAlertService_; var getLocale = function () { return readJSON('scripts/app/i18n/resources-locale_en.json'); }; $httpBackend.whenGET(/^scripts\/app\/i18n\/resources-locale_en.*$/).respond(getLocale()); $httpBackend.whenGET('/smartit/rest/v2/metadata?type=task').respond(200); $httpBackend.whenGET('/smartit/rest/task/draft').respond(200); $httpBackend.whenGET('/smartit/rest/v2/customization/screenlayout?screen=createTaskScreen').respond(200); $httpBackend.whenGET('/smartit/rest/v2/customization/application/search?name=Galileo&phase=2&screen=createTaskScreen').respond(200); modalInstance = { close: jasmine.createSpy('modalInstance.close'), dismiss: jasmine.createSpy('modalInstance.dismiss'), result: { then: jasmine.createSpy('modalInstance.result.then') } }; var parent = new TicketVO(); parent.id = "AG00123F73CF5Eqc4TSQAOExAgW0QB"; parent.type = "incident"; parent.company = {name: 'Calbro Services'}; ticketModel.taskParent = parent; configurationModel.isServerApplicationEnabled = jasmine.createSpy('isServerApplicationEnabled').and.callFake(function () { return function () { return true; }; }); ctrl = $controller('CreateTaskV2Controller', { $scope: $scope, $modalInstance: modalInstance }); spyOn(systemAlertService, 'error'); })); it('should exist', function () { expect(ctrl).toBeDefined(); }); beforeEach(inject(function ($q, $rootScope) { var taskData = { id: '123', type: 'task', }; spyOn(ticketModel, 'getDraft').and.callFake(function () { deferred.resolve(taskData); return deferred.promise; }); })); it('should run cancel', function () { $scope.cancel(); }); it('should run createTask', function () { $scope.createTask(); }); it('should throw an error while creating task having summary more than 255 characters in case of success', function () { var dummyError = "Dummy Error"; spyOn(createTicketModel, 'createTaskV2').and.callFake(function () { deferred.resolve(dummyError); return deferred.promise; }); $scope.createTask(); $scope.$digest(); expect(systemAlertService.error).toHaveBeenCalled(); }); it('should throw an error while creating task having summary more than 255 characters in case of catch', function () { var dummyError = { 'data': { 'error': 'Dummy Error' } }; spyOn(createTicketModel, 'createTaskV2').and.callFake(function () { deferred.reject(dummyError); return deferred.promise; }); $scope.createTask(); $scope.$digest(); expect(systemAlertService.error).toHaveBeenCalled(); }); });