angular-mask
Version:
Personalized input masks for AngularJS
86 lines (74 loc) • 3.41 kB
JavaScript
var StringMask = require('string-mask');
describe('ui.utils.masks.number', function() {
beforeEach(function() {
browser.get('/demo');
});
it('should load the demo page', function() {
expect(browser.getTitle()).toEqual('Angular Mask Demo');
});
describe('ui-br-phone-number:', function() {
it('should apply a phone number mask while the user is typping:', function() {
var BS = protractor.Key.BACK_SPACE;
var tests = [
{key:'1', viewValue:'(1', modelValue:'1'},
{key:'2', viewValue:'(12', modelValue:'12'},
{key:'3', viewValue:'(12) 3', modelValue:'123'},
{key:'4', viewValue:'(12) 34', modelValue:'1234'},
{key:'5', viewValue:'(12) 345', modelValue:'12345'},
{key:'6', viewValue:'(12) 3456', modelValue:'123456'},
{key:'7', viewValue:'(12) 3456-7', modelValue:'1234567'},
{key:'8', viewValue:'(12) 3456-78', modelValue:'12345678'},
{key:'9', viewValue:'(12) 3456-789', modelValue:'123456789'},
{key:'0', viewValue:'(12) 3456-7890', modelValue:'1234567890'},
{key:'1', viewValue:'(12) 34567-8901', modelValue:'12345678901'},
{key:'2', viewValue:'(12) 34567-8901', modelValue:'12345678901'},
{key:BS, viewValue:'(12) 3456-7890', modelValue:'1234567890'},
{key:BS, viewValue:'(12) 3456-789', modelValue:'123456789'},
{key:BS, viewValue:'(12) 3456-78', modelValue:'12345678'},
{key:BS, viewValue:'(12) 3456-7', modelValue:'1234567'},
{key:BS, viewValue:'(12) 3456', modelValue:'123456'},
{key:BS, viewValue:'(12) 345', modelValue:'12345'},
{key:BS, viewValue:'(12) 34', modelValue:'1234'},
{key:BS, viewValue:'(12) 3', modelValue:'123'},
{key:BS, viewValue:'(12', modelValue:'12'},
{key:BS, viewValue:'(1', modelValue:'1'},
{key:BS, viewValue:'', modelValue:''},
];
var input = element(by.model('phoneNumber')),
value = element(by.binding('phoneNumber'));
for (var i = 0; i < tests.length; i++) {
input.sendKeys(tests[i].key);
expect(input.getAttribute('value')).toEqual(tests[i].viewValue);
expect(value.getText()).toEqual(tests[i].modelValue);
}
});
it('should apply a phone number mask in a model with default value:', function() {
var BS = protractor.Key.BACK_SPACE;
var tests = [
{key:'1', viewValue:'(1', modelValue:'1'},
{key:'2', viewValue:'(12', modelValue:'12'},
{key:'3', viewValue:'(12) 3', modelValue:'123'},
{key:'4', viewValue:'(12) 34', modelValue:'1234'},
{key:'5', viewValue:'(12) 345', modelValue:'12345'},
{key:'6', viewValue:'(12) 3456', modelValue:'123456'},
{key:'7', viewValue:'(12) 3456-7', modelValue:'1234567'},
{key:BS, viewValue:'(12) 3456', modelValue:'123456'},
{key:BS, viewValue:'(12) 345', modelValue:'12345'},
{key:BS, viewValue:'(12) 34', modelValue:'1234'},
{key:BS, viewValue:'(12) 3', modelValue:'123'},
{key:BS, viewValue:'(12', modelValue:'12'},
{key:BS, viewValue:'(1', modelValue:'1'},
{key:BS, viewValue:'', modelValue:''},
];
var input = element(by.model('initializedPhoneNumber')),
value = element(by.binding('initializedPhoneNumber'));
expect(input.getAttribute('value')).toEqual('(31) 3353-6767');
input.clear();
for (var i = 0; i < tests.length; i++) {
input.sendKeys(tests[i].key);
expect(input.getAttribute('value')).toEqual(tests[i].viewValue);
expect(value.getText()).toEqual(tests[i].modelValue);
}
});
});
});