-
-
Save dhoko/ae0e705c680bccc3579f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
describe('Format a mask', () => { | |
describe('Mask: XXXX XXXX XXXX', () => { | |
let mask; | |
beforeEach(() => { | |
mask = factory.string.mask('XXXX XXXX XXXX'); | |
}); | |
it('should convert string to a full matching mask', () => { | |
expect(mask.full('111122223333')).toBe('1111 2222 3333'); | |
expect(mask.full('1111ssss////')).toBe('1111 ssss ////'); | |
}); | |
it('should return a raw string from a matching pattern', () => { | |
expect(mask.filtered('1111 2222 3333')).toBe('111122223333'); | |
expect(mask.filtered('1111 ssss ////')).toBe('1111ssss////'); | |
}); | |
it('should return the size of a mask', () => { | |
expect(mask.size()).toBe('XXXX XXXX XXXX'.length); | |
}); | |
it('should increment a string until the matching pattern', () => { | |
let test = ''; | |
expect(test = mask.set('a')).toBe('a'); | |
expect(test = mask.set(test + 'a')).toBe('aa'); | |
expect(test = mask.set(test + 'a')).toBe('aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa a'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa a'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa aa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa aaaa'); | |
expect(test = mask.set(test + '2')).toBe('aaaa aaaa aaaa'); | |
}); | |
it('should increment/decrement a string until the matching pattern', () => { | |
let test = ''; | |
expect(test = mask.set('a')).toBe('a'); | |
expect(test = mask.set(test + 'a')).toBe('aa'); | |
expect(test = mask.set(test + 'a')).toBe('aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa a'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa a'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa aa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aaaa aaaa aaaa'); | |
expect(test = mask.set(test.slice(0, test.length -1))).toBe('aaaa aaaa aaa'); | |
expect(test = mask.set(test + '2')).toBe('aaaa aaaa aaa2'); | |
}); | |
}); | |
describe('Mask: XX/XXXX', () => { | |
let mask; | |
beforeEach(() => { | |
mask = factory.string.mask('XX/XXXX'); | |
}); | |
it('should convert string to a full matching mask', () => { | |
expect(mask.full('111122')).toBe('11/1122'); | |
expect(mask.full('1111ss')).toBe('11/11ss'); | |
}); | |
it('should return a raw string from a matching pattern', () => { | |
expect(mask.filtered('11/1122')).toBe('111122'); | |
expect(mask.filtered('11/11ss')).toBe('1111ss'); | |
}); | |
it('should return the size of a mask', () => { | |
expect(mask.size()).toBe('XX/XXXX'.length); | |
}); | |
it('should increment a string until the matching pattern', () => { | |
let test = ''; | |
expect(test = mask.set('a')).toBe('a'); | |
expect(test = mask.set(test + 'a')).toBe('aa'); | |
expect(test = mask.set(test + 'a')).toBe('aa/a'); | |
expect(test = mask.set(test + 'a')).toBe('aa/aa'); | |
expect(test = mask.set(test + 'a')).toBe('aa/aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aa/aaaa'); | |
expect(test = mask.set(test + '2')).toBe('aa/aaaa'); | |
}); | |
it('should increment/decrement a string until the matching pattern', () => { | |
let test = ''; | |
expect(test = mask.set('a')).toBe('a'); | |
expect(test = mask.set(test + 'a')).toBe('aa'); | |
expect(test = mask.set(test + 'a')).toBe('aa/a'); | |
expect(test = mask.set(test + 'a')).toBe('aa/aa'); | |
expect(test = mask.set(test + 'a')).toBe('aa/aaa'); | |
expect(test = mask.set(test + 'a')).toBe('aa/aaaa'); | |
expect(test = mask.set(test + '2')).toBe('aa/aaaa'); | |
expect(test = mask.set(test.slice(0, test.length -1))).toBe('aa/aaa'); | |
expect(test = mask.set(test + '2')).toBe('aa/aaa2'); | |
}); | |
}); | |
describe('Mask: X:X.X X/X', () => { | |
let mask; | |
beforeEach(() => { | |
mask = factory.string.mask('X:X.X X/X'); | |
}); | |
it('should convert string to a full matching mask', () => { | |
expect(mask.full('12345')).toBe('1:2.3 4/5'); | |
expect(mask.full('1a3c2')).toBe('1:a.3 c/2'); | |
}); | |
it('should return a raw string from a matching pattern', () => { | |
expect(mask.filtered('1:2.3 4/5')).toBe('12345'); | |
expect(mask.filtered('1:a.3 c/2')).toBe('1a3c2'); | |
}); | |
it('should return the size of a mask', () => { | |
expect(mask.size()).toBe('X:X.X X/X'.length); | |
}); | |
it('should increment a string until the matching pattern', () => { | |
let test = ''; | |
expect(test = mask.set('a')).toBe('a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a.a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a.a a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a.a a/a'); | |
expect(test = mask.set(test + '2')).toBe('a:a.a a/a'); | |
}); | |
it('should increment/decrement a string until the matching pattern', () => { | |
let test = ''; | |
expect(test = mask.set('a')).toBe('a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a.a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a.a a'); | |
expect(test = mask.set(test + 'a')).toBe('a:a.a a/a'); | |
expect(test = mask.set(test + '2')).toBe('a:a.a a/a'); | |
expect(test = mask.set(test.slice(0, test.length -1))).toBe('a:a.a a/'); | |
expect(test = mask.set(test + '2')).toBe('a:a.a a/2'); | |
}); | |
}); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment