vijay06
Version:
awesome ngx mask
142 lines (128 loc) • 5.51 kB
text/typescript
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
import { NgxMaskModule } from '../lib/ngx-mask.module';
import { TestMaskComponent } from './utils/test-component.component';
import { equal } from './utils/test-functions.component';
describe('Directive: Mask (Placeholder character)', () => {
let fixture: ComponentFixture<TestMaskComponent>;
let component: TestMaskComponent;
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [TestMaskComponent],
imports: [ReactiveFormsModule, NgxMaskModule.forRoot()],
});
fixture = TestBed.createComponent(TestMaskComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should display the default placeholder when not configured', () => {
component.mask = '(000) 000-0000';
component.showMaskTyped = true;
equal('', '(___) ___-____', fixture);
equal('2345678', '(234) 567-8___', fixture);
component.prefix = '+7';
component.showMaskTyped = true;
equal('', '+7(___) ___-____', fixture);
equal('2345678', '+7(234) 567-8___', fixture);
component.mask = 'IP';
component.prefix = '';
component.showMaskTyped = true;
equal('', '_._._._', fixture);
equal('1921681', '192.168.1_', fixture);
component.mask = 'CPF_CNPJ';
component.prefix = '';
component.showMaskTyped = true;
equal('', '___.___.___-__', fixture);
equal('1', '1__.___.___-__', fixture);
equal('12', '12_.___.___-__', fixture);
equal('123', '123.___.___-__', fixture);
equal('1234', '123.4__.___-__', fixture);
equal('12345', '123.45_.___-__', fixture);
equal('123456', '123.456.___-__', fixture);
equal('1234567', '123.456.7__-__', fixture);
equal('12345678', '123.456.78_-__', fixture);
equal('123456789', '123.456.789-__', fixture);
equal('1234567890', '123.456.789-0_', fixture);
equal('12345678901', '123.456.789-01', fixture);
equal('123456789012', '12.345.678/9012-__', fixture);
equal('1234567890123', '12.345.678/9012-3_', fixture);
equal('12345678901234', '12.345.678/9012-34', fixture);
component.mask = '000.000.000-00||00.000.000/0000-00';
component.prefix = '';
component.showMaskTyped = true;
equal('1', '1__.___.___-__', fixture);
equal('12', '12_.___.___-__', fixture);
equal('123', '123.___.___-__', fixture);
equal('1234', '123.4__.___-__', fixture);
equal('12345', '123.45_.___-__', fixture);
equal('123456', '123.456.___-__', fixture);
equal('1234567', '123.456.7__-__', fixture);
equal('12345678', '123.456.78_-__', fixture);
equal('123456789', '123.456.789-__', fixture);
equal('1234567890', '123.456.789-0_', fixture);
equal('12345678901', '123.456.789-01', fixture);
equal('123456789012', '12.345.678/9012-__', fixture);
equal('1234567890123', '12.345.678/9012-3_', fixture);
equal('12345678901234', '12.345.678/9012-34', fixture);
component.mask = '(00) 0000-0000||(00) 0 0000-0000';
component.prefix = '';
component.showMaskTyped = true;
equal('1', '(1_) ____-____', fixture);
equal('12', '(12) ____-____', fixture);
equal('123', '(12) 3___-____', fixture);
equal('1234', '(12) 34__-____', fixture);
equal('12345', '(12) 345_-____', fixture);
equal('123456', '(12) 3456-____', fixture);
equal('1234567', '(12) 3456-7___', fixture);
equal('12345678', '(12) 3456-78__', fixture);
equal('123456789', '(12) 3456-789_', fixture);
equal('1234567890', '(12) 3456-7890', fixture);
equal('12345678901', '(12) 3 4567-8901', fixture);
equal('(1', '(1_) ____-____', fixture);
equal('(12', '(12) ____-____', fixture);
equal('(12)', '(12) ____-____', fixture);
equal('(12) 3', '(12) 3___-____', fixture);
equal('(12) 34', '(12) 34__-____', fixture);
equal('(12) 345', '(12) 345_-____', fixture);
equal('(12) 3456', '(12) 3456-____', fixture);
equal('(12) 3456-7', '(12) 3456-7___', fixture);
equal('(12) 3456-78', '(12) 3456-78__', fixture);
equal('(12) 3456-789', '(12) 3456-789_', fixture);
equal('(12) 3456-7890', '(12) 3456-7890', fixture);
equal('(12) 3 4567-8901', '(12) 3 4567-8901', fixture);
});
it('should display the modified placeholder when configured', () => {
component.mask = '(000) 000-0000';
component.showMaskTyped = true;
component.placeHolderCharacter = '*';
equal('', '(***) ***-****', fixture);
equal('2345678', '(234) 567-8***', fixture);
component.prefix = '+7';
component.showMaskTyped = true;
equal('', '+7(***) ***-****', fixture);
equal('2345678', '+7(234) 567-8***', fixture);
component.mask = 'IP';
component.prefix = '';
component.showMaskTyped = true;
equal('', '*.*.*.*', fixture);
equal('1921681', '192.168.1*', fixture);
component.mask = 'CPF_CNPJ';
component.prefix = '';
component.showMaskTyped = true;
equal('', '***.***.***-**', fixture);
equal('1', '1**.***.***-**', fixture);
equal('12', '12*.***.***-**', fixture);
equal('123', '123.***.***-**', fixture);
equal('1234', '123.4**.***-**', fixture);
equal('12345', '123.45*.***-**', fixture);
equal('123456', '123.456.***-**', fixture);
equal('1234567', '123.456.7**-**', fixture);
equal('12345678', '123.456.78*-**', fixture);
equal('123456789', '123.456.789-**', fixture);
equal('1234567890', '123.456.789-0*', fixture);
equal('12345678901', '123.456.789-01', fixture);
equal('123456789012', '12.345.678/9012-**', fixture);
equal('1234567890123', '12.345.678/9012-3*', fixture);
equal('12345678901234', '12.345.678/9012-34', fixture);
});
});