vijay06
Version:
awesome ngx mask
71 lines (57 loc) • 1.97 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 (Repeat)', () => {
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('repeat mask', () => {
component.mask = '0{4}';
equal('1234', '1234', fixture);
});
it('should work when repeat value is more then 9', () => {
component.mask = 'A{12}';
equal('123456789ABC', '123456789ABC', fixture);
});
it('should correctly handle leading zeros', () => {
component.mask = 'A{02}';
equal('1234', '12', fixture);
component.mask = 'A{0000012}';
equal('123456789ABCDE', '123456789ABC', fixture);
});
it('should repeat digits only', () => {
component.mask = '0{6}';
equal('AbC12345678Bfc', '123456', fixture);
});
it('should repeat digits and letters', () => {
component.mask = 'A{6}';
equal('AbC12345678Bfc', 'AbC123', fixture);
});
it('should repeat only letters', () => {
component.mask = 'S{6}';
equal('AbC12345678Bfc', 'AbCBfc', fixture);
});
it('repeat mask date', () => {
component.mask = '0{2}/0{2}/0{4}';
equal('12345678', '12/34/5678', fixture);
});
// it('specialCharacters quotes', () => {
// component.mask = '\'00\'00\'0000\'';
// equal('12345678', '\'12\'34\'5678\'', fixture);
// });
it('specialCharacters quotes', () => {
component.mask = '0-0-0*-0*-0*';
equal('123', '1-2-3', fixture);
equal('123-42-', '1-2-3-42-', fixture);
});
});