describe('Test task phase directive', function () { var compile, scope, $httpBackend, originalTimeout, objectValueMapperService, events, field, ticket; beforeEach(module('myitsmApp','templates')); beforeEach(function(){ inject(function($compile, $rootScope, $injector, _objectValueMapperService_, _events_){ $httpBackend = $injector.get('$httpBackend'); 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/serverstates').respond(200); $httpBackend.whenGET('/smartit/rest/sessionstatus?getLicenseKey=true').respond(200); compile = $compile; scope = $rootScope.$new(); objectValueMapperService = _objectValueMapperService_; events = _events_; field = { "id": "AGGAA5V0HG8SIAOTIDJZAB1ZVENZN5", "name": "taskPhase", "type": "Phase", "dataType": "widget", "displayOrder": 1, "groupMember": false, "widgetMember": false, "ootb": true, "hide": false, "required": false, "editable": false, "hideLabel": false, "value": {"customerEmail": "cneramani@petramco.com"}, "members": [ { "id": "AGGAA5V0HG8SIAOTI9NJAAA49ATLTQ", "name": "internetEmail", "itsmFieldId": 1000000048, "parentId": "AGGAA5V0HG8SIAOTIDJZAB1ZVENZN5", "displayOrder": 0, "groupMember": false, "widgetMember": true, "ootb": true, "hide": false, "required": false, "editable": true, "hideLabel": false, "accessible": true } ], "accessible": true }; }); }); beforeEach(function() { originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL; jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000; }); afterEach(function() { jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout; }); function getCompiledElement(){ var element = angular.element(''); var compiledElement = compile(element)(scope); scope.$digest(); return compiledElement; } it('should compile', function(){ scope.field = new FieldVO().build(field); var directiveElem = getCompiledElement(); var divElem = directiveElem[0]; expect(divElem).toBeDefined(); }); it('should invoke watch for setValueFlag', function(){ scope.field = new FieldVO().build(field); scope.ticket = { selectedPhase: {guid: 'AGGAA500HG8', name: 'phaseSelected' }, taskPhases: [{name: true}] }; scope.field.setValueFlag = {'phaseName': true}; scope.$digest(); var directiveElem = getCompiledElement(); expect(scope.field.setValueFlag).toEqual('#$#'); }); });