127 lines
4.8 KiB
JavaScript
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');
|
|
}));
|
|
}); |