SmartIT_Extensions/BMC/smart-it-full/test/app/custom-widgets/task-phase-directive.spec.js

90 lines
3.4 KiB
JavaScript

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('<task-phase data="field" is-new="true" is-editable="true" ticket="ticket"></task-phase>');
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('#$#');
});
});