Skip to content

Instantly share code, notes, and snippets.

@dhoko
Created December 18, 2015 09:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dhoko/ae0e705c680bccc3579f to your computer and use it in GitHub Desktop.
Save dhoko/ae0e705c680bccc3579f to your computer and use it in GitHub Desktop.
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