SmartIT_Extensions/BMC/smart-it-full/test/app/custom-widgets/phone-field-directive.spec.js

127 lines
4.8 KiB
JavaScript

describe('Test phone directive', function () {
var compile, scope, $httpBackend, objectValueMapperService,events;
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());
compile = $compile;
scope = $rootScope.$new();
objectValueMapperService = _objectValueMapperService_ ;
events = _events_;
});
});
function getCompiledElement(){
var element = angular.element('<phone-field data="field" is-editable="true"></phone-field>');
var compiledElement = compile(element)(scope);
scope.$digest();
return compiledElement;
}
it('should compile', function(){
var field = {
"id": "AGGAA5V0HG8SIAOTBAS5ABEX3KN4YN",
"name": "contactPhone",
"type": "phoneField",
"dataType": "widget",
"displayOrder": 0,
"groupMember": false,
"widgetMember": false,
"ootb": true,
"hide": false,
"required": false,
"editable": true,
"hideLabel": false,
"value": {"customerPhone": "1 925 469-4005"},
"members": [
{
"id": "AGGAA5V0HG8SIAOTIDN4AB2AI9NZO6",
"name": "phoneNumber",
"itsmFieldId": 1000000056,
"parentId": "AGGAA5V0HG8SIAOTBAS5ABEX3KN4YN",
"type": "characterField",
"dataType": "text",
"displayOrder": 0,
"label": "Customer Phone",
"groupMember": false,
"widgetMember": true,
"ootb": true,
"hide": false,
"required": true,
"editable": true,
"hideLabel": false,
"rowCount": 1,
"maxLength": 50,
"accessible": true
}
],
"accessible": true
};
scope.field = new FieldVO().build(field);
var directiveElem = getCompiledElement();
var divElem = directiveElem[0];
expect(divElem).toBeDefined();
});
it('should invoke watch for setValueFlag', function(){
var field = {
"id": "AGGAA5V0HG8SIAOTIDJZAB1ZVENZN5",
"name": "customerEmail",
"type": "emailField",
"dataType": "widget",
"value": {"customerEmail": "cneramani@petramco.com"},
"accessible": true
};
scope.field = new FieldVO().build(field);
scope.field.setValueFlag = "Some text";
scope.$digest();
spyOn(objectValueMapperService, 'getFieldByName').and.callFake(function () {
return { dataType: 'widget', value: {} };
});
var directiveElem = getCompiledElement();
expect(scope.field.setValueFlag).toEqual('#$#');
});
it('should listen to DISCARD_CHANGES ', inject(function ($rootScope) {
var field = {
"id": "AGGAA5V0HG8SIAOTIDJZAB1ZVENZN5",
"name": "customerEmail",
"type": "emailField",
"dataType": "widget",
"value": {"customerEmail": "cneramani@petramco.com", internetEmail: "Some Data"},
"accessible": true,
"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
}
]
};
scope.field = new FieldVO().build(field);
spyOn(objectValueMapperService, 'getFieldByName').and.callFake(function () {
return { dataType: 'widget', value: {ootbKey: 'Some Data'} };
});
scope.$digest();
var directiveElem = getCompiledElement();
var isoScope = directiveElem.isolateScope();
isoScope.$parent.$broadcast(events.DISCARD_CHANGES);
expect(scope.field.ootbValue).toEqual('Some Data');
}));
});