2
0
mirror of https://github.com/tenrok/maska.git synced 2026-05-15 11:59:38 +03:00

fix!: change eager mask behavior

Now eager mask take into account a hardcoded symbols
This commit is contained in:
Alexander Shabunevich
2024-04-06 10:13:31 +03:00
parent dee8f2eaf2
commit ce1243abcd
2 changed files with 47 additions and 29 deletions
+42 -29
View File
@@ -175,7 +175,9 @@ test('0#.# mask', () => {
const mask = new Mask({ mask: '0#.#' })
expect(mask.masked('1')).toBe('01')
expect(mask.masked('0')).toBe('0')
expect(mask.masked('01')).toBe('01')
expect(mask.masked('01.')).toBe('01.')
expect(mask.masked('12')).toBe('01.2')
expect(mask.masked('1.2')).toBe('01.2')
expect(mask.masked('01.2')).toBe('01.2')
@@ -189,10 +191,12 @@ test('0#.# eager mask', () => {
const mask = new Mask({ mask: '0#.#', eager: true })
expect(mask.masked('1')).toBe('01.')
expect(mask.masked('01')).toBe('00.1')
expect(mask.masked('0')).toBe('0')
expect(mask.masked('01')).toBe('01.')
expect(mask.masked('01.')).toBe('01.')
expect(mask.masked('12')).toBe('01.2')
expect(mask.masked('1.2')).toBe('01.2')
expect(mask.masked('01.2')).toBe('00.1')
expect(mask.masked('01.2')).toBe('01.2')
expect(mask.masked('123')).toBe('01.2')
expect(mask.masked('a123')).toBe('01.2')
@@ -264,6 +268,7 @@ test('0#!-# mask', () => {
expect(mask.masked('a')).toBe('0')
expect(mask.masked('0')).toBe('0')
expect(mask.masked('01')).toBe('01')
expect(mask.masked('1')).toBe('01')
expect(mask.masked('12')).toBe('01-2')
expect(mask.masked('01-2')).toBe('01-2')
@@ -277,10 +282,11 @@ test('!0#!-# eager mask', () => {
const mask = new Mask({ mask: '!0#!-#', eager: true })
expect(mask.masked('a')).toBe('0')
expect(mask.masked('0')).toBe('00-')
expect(mask.masked('0')).toBe('0')
expect(mask.masked('01')).toBe('01-')
expect(mask.masked('1')).toBe('01-')
expect(mask.masked('12')).toBe('01-2')
expect(mask.masked('01-2')).toBe('00-1')
expect(mask.masked('01-2')).toBe('01-2')
expect(mask.masked('123')).toBe('01-2')
expect(mask.masked('a123')).toBe('01-2')
@@ -309,14 +315,14 @@ test('#2 ## eager mask', () => {
const mask = new Mask({ mask: '#2 ##', eager: true })
expect(mask.masked('1')).toBe('12 ')
expect(mask.masked('12')).toBe('12 2')
expect(mask.masked('12 ')).toBe('12 2')
expect(mask.masked('12')).toBe('12 ')
expect(mask.masked('12 ')).toBe('12 ')
expect(mask.masked('13')).toBe('12 3')
expect(mask.masked('123')).toBe('12 23')
expect(mask.masked('123')).toBe('12 3')
expect(mask.masked('134')).toBe('12 34')
expect(mask.masked('1234')).toBe('12 23')
expect(mask.masked('1234')).toBe('12 34')
expect(mask.masked('1345')).toBe('12 34')
expect(mask.masked('12345')).toBe('12 23')
expect(mask.masked('12345')).toBe('12 34')
expect(mask.masked('a1')).toBe('12 ')
expect(mask.masked('a13')).toBe('12 3')
@@ -348,10 +354,10 @@ test('(#) 3## eager mask', () => {
expect(mask.masked('12')).toBe('(1) 32')
expect(mask.masked('123')).toBe('(1) 323')
expect(mask.masked('1234')).toBe('(1) 323')
expect(mask.masked('13')).toBe('(1) 33')
expect(mask.masked('134')).toBe('(1) 334')
expect(mask.masked('13')).toBe('(1) 3')
expect(mask.masked('134')).toBe('(1) 34')
expect(mask.masked('(1) 23')).toBe('(1) 323')
expect(mask.masked('(1) 34')).toBe('(1) 334')
expect(mask.masked('(1) 34')).toBe('(1) 34')
expect(mask.unmasked('1')).toBe('1')
expect(mask.unmasked('1234')).toBe('123')
@@ -387,14 +393,15 @@ test('(1) 2## eager mask', () => {
expect(mask.masked(' ')).toBe('(1) 2')
expect(mask.masked('.')).toBe('(1) 2')
expect(mask.masked('1')).toBe('(1) 21')
expect(mask.masked('12')).toBe('(1) 212')
expect(mask.masked('123')).toBe('(1) 212')
expect(mask.masked('13')).toBe('(1) 213')
expect(mask.masked('(1) 23')).toBe('(1) 212')
expect(mask.masked('(1) 34')).toBe('(1) 213')
expect(mask.masked('2')).toBe('(1) 22')
expect(mask.masked('23')).toBe('(1) 223')
expect(mask.masked('1')).toBe('(1) 2')
expect(mask.masked('1 ')).toBe('(1) 2')
expect(mask.masked('12')).toBe('(1) 2')
expect(mask.masked('123')).toBe('(1) 23')
expect(mask.masked('13')).toBe('(1) 23')
expect(mask.masked('(1) 23')).toBe('(1) 23')
expect(mask.masked('(1) 34')).toBe('(1) 234')
expect(mask.masked('2')).toBe('(1) 2')
expect(mask.masked('23')).toBe('(1) 23')
expect(mask.masked('3')).toBe('(1) 23')
expect(mask.unmasked('1')).toBe('')
@@ -427,13 +434,14 @@ test('12## eager mask', () => {
expect(mask.masked(' ')).toBe('12')
expect(mask.masked('.')).toBe('12')
expect(mask.masked('1')).toBe('121')
expect(mask.masked('2')).toBe('122')
expect(mask.masked('1')).toBe('12')
expect(mask.masked('1 ')).toBe('12')
expect(mask.masked('2')).toBe('12')
expect(mask.masked('3')).toBe('123')
expect(mask.masked('12')).toBe('1212')
expect(mask.masked('123')).toBe('1212')
expect(mask.masked('13')).toBe('1213')
expect(mask.masked('134')).toBe('1213')
expect(mask.masked('12')).toBe('12')
expect(mask.masked('123')).toBe('123')
expect(mask.masked('13')).toBe('123')
expect(mask.masked('134')).toBe('1234')
expect(mask.unmasked('1')).toBe('')
expect(mask.unmasked('12')).toBe('')
@@ -482,12 +490,16 @@ test('+1 (###) ###-##-## mask', () => {
test('+1 (###) ###-##-## eager mask', () => {
const mask = new Mask({ mask: '+1 (###) ###-##-##', eager: true })
expect(mask.masked('.')).toBe('+1 (')
expect(mask.masked(' ')).toBe('+1 (')
expect(mask.masked('+')).toBe('+1 (')
expect(mask.masked('99')).toBe('+1 (99')
expect(mask.masked('999')).toBe('+1 (999) ')
expect(mask.masked('99912')).toBe('+1 (999) 12')
expect(mask.masked('999123')).toBe('+1 (999) 123-')
expect(mask.masked('19991234567')).toBe('+1 (199) 912-34-56')
expect(mask.masked('+19991234567')).toBe('+1 (199) 912-34-56')
expect(mask.masked('19')).toBe('+1 (9')
expect(mask.masked('19991234567')).toBe('+1 (999) 123-45-67')
expect(mask.masked('+19991234567')).toBe('+1 (999) 123-45-67')
expect(mask.masked('9991234567')).toBe('+1 (999) 123-45-67')
expect(mask.masked('a9991234567')).toBe('+1 (999) 123-45-67')
@@ -497,8 +509,9 @@ test('+1 (###) ###-##-## eager mask', () => {
test('1 (###) ###-##-## eager mask', () => {
const mask = new Mask({ mask: '1 (###) ###-##-##', eager: true })
expect(mask.masked('19991234567')).toBe('1 (199) 912-34-56')
expect(mask.masked('+')).toBe('1 (')
expect(mask.masked('+19991234567')).toBe('1 (199) 912-34-56')
expect(mask.masked('19991234567')).toBe('1 (999) 123-45-67')
expect(mask.masked('9991234567')).toBe('1 (999) 123-45-67')
expect(mask.masked('a9991234567')).toBe('1 (999) 123-45-67')