validation-br 1.0.0-b → 1.0.0-c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.eslintcache +1 -0
  2. package/package.json +64 -2
  3. package/dist/cnh.test.js +0 -117
  4. package/dist/cnh.test.js.map +0 -1
  5. package/dist/cnpj.test.js +0 -141
  6. package/dist/cnpj.test.js.map +0 -1
  7. package/dist/cpf.test.js +0 -130
  8. package/dist/cpf.test.js.map +0 -1
  9. package/dist/index.test.js +0 -33
  10. package/dist/index.test.js.map +0 -1
  11. package/dist/judicialProcess.test.js +0 -123
  12. package/dist/judicialProcess.test.js.map +0 -1
  13. package/dist/pisPasep.test.js +0 -129
  14. package/dist/pisPasep.test.js.map +0 -1
  15. package/dist/postalCode.test.js +0 -135
  16. package/dist/postalCode.test.js.map +0 -1
  17. package/dist/renavam.test.js +0 -113
  18. package/dist/renavam.test.js.map +0 -1
  19. package/dist/tituloEleitor.test.js +0 -132
  20. package/dist/tituloEleitor.test.js.map +0 -1
  21. package/dist/utils-applyMask.test.js +0 -17
  22. package/dist/utils-applyMask.test.js.map +0 -1
  23. package/dist/utils-clearValue.test.js +0 -50
  24. package/dist/utils-clearValue.test.js.map +0 -1
  25. package/dist/utils-fakeNumber.test.js +0 -17
  26. package/dist/utils-fakeNumber.test.js.map +0 -1
  27. package/dist/utils-insertAtPosition.test.js +0 -16
  28. package/dist/utils-insertAtPosition.test.js.map +0 -1
  29. package/dist/utils-invalidListGenerator.test.js +0 -23
  30. package/dist/utils-invalidListGenerator.test.js.map +0 -1
  31. package/dist/utils-removeFromPosition.test.js +0 -16
  32. package/dist/utils-removeFromPosition.test.js.map +0 -1
  33. package/dist/utils-sumElementsByMultipliers.test.js +0 -32
  34. package/dist/utils-sumElementsByMultipliers.test.js.map +0 -1
  35. package/dist/utils-sumToDV.test.js +0 -16
  36. package/dist/utils-sumToDV.test.js.map +0 -1
  37. package/src/cnh.test.ts +0 -114
  38. package/src/cnh.ts +0 -140
  39. package/src/cnpj.test.ts +0 -136
  40. package/src/cnpj.ts +0 -128
  41. package/src/cpf.test.ts +0 -125
  42. package/src/cpf.ts +0 -150
  43. package/src/index.test.ts +0 -35
  44. package/src/index.ts +0 -19
  45. package/src/judicialProcess.test.ts +0 -118
  46. package/src/judicialProcess.ts +0 -167
  47. package/src/pisPasep.test.ts +0 -124
  48. package/src/pisPasep.ts +0 -128
  49. package/src/postalCode.test.ts +0 -132
  50. package/src/postalCode.ts +0 -164
  51. package/src/renavam.test.ts +0 -110
  52. package/src/renavam.ts +0 -122
  53. package/src/tituloEleitor.test.ts +0 -129
  54. package/src/tituloEleitor.ts +0 -146
  55. package/src/utils-applyMask.test.ts +0 -17
  56. package/src/utils-clearValue.test.ts +0 -55
  57. package/src/utils-fakeNumber.test.ts +0 -19
  58. package/src/utils-insertAtPosition.test.ts +0 -15
  59. package/src/utils-invalidListGenerator.test.ts +0 -27
  60. package/src/utils-removeFromPosition.test.ts +0 -15
  61. package/src/utils-sumElementsByMultipliers.test.ts +0 -34
  62. package/src/utils-sumToDV.test.ts +0 -16
  63. package/src/utils.ts +0 -172
@@ -1,124 +0,0 @@
1
- import isPIS, { dv, fake, mask, validate, validateOrFail } from './pisPasep'
2
-
3
- describe('PIS', () => {
4
- test('isPIS() - Números válidos', () => {
5
- const list = [
6
- // string
7
- '71282677380',
8
- '23795126955',
9
- // integer
10
- 50012973803,
11
- 27890141144,
12
- // masked
13
- '268.27649.96-0',
14
- '613.01862.91-7',
15
- ]
16
-
17
- list.forEach((pis) => {
18
- expect(isPIS(pis)).toBeTruthy()
19
- })
20
- })
21
-
22
- test('validate() - Números válidos', () => {
23
- const list = [
24
- // string
25
- '71282677380',
26
- '23795126955',
27
- // integer
28
- 50012973803,
29
- 27890141144,
30
- // masked
31
- '268.27649.96-0',
32
- '613.01862.91-7',
33
- ]
34
-
35
- list.forEach((pis) => {
36
- expect(validate(pis)).toBeTruthy()
37
- })
38
- })
39
-
40
- test('validate() - Números inválidos', () => {
41
- const list = [
42
- '712.82677.38-2',
43
- '237.95126.95-4',
44
- '500.12973.80-1',
45
- '278.90141.14-9',
46
- '268.27649.96-2',
47
- '613.01862.91-4',
48
- '111.11111.11-1',
49
- ]
50
-
51
- list.forEach((pis) => {
52
- expect(validate(pis)).toBeFalsy()
53
- })
54
- })
55
-
56
- test('validateOrFail() - Números inválidos', () => {
57
- const list = [
58
- '712.82677.38-2',
59
- '237.95126.95-4',
60
- '500.12973.80-1',
61
- '278.90141.14-9',
62
- '268.27649.96-2',
63
- '613.01862.91-4',
64
- '111.11111.11-1',
65
- ]
66
-
67
- list.forEach((pis) => {
68
- expect(() => validateOrFail(pis)).toThrow()
69
- })
70
- })
71
-
72
- test('Parâmetro não informado', () => {
73
- expect(isPIS('')).toBeFalsy()
74
- expect(validate('')).toBeFalsy()
75
- expect(() => validateOrFail('')).toThrow()
76
- expect(() => dv('')).toThrow()
77
- })
78
-
79
- test('fake() - Gera fakes sem máscara', () => {
80
- for (let i = 0; i < 5; i += 1) {
81
- const pis = fake()
82
- expect(validate(pis)).toBeTruthy()
83
- expect(pis).toHaveLength(11)
84
- }
85
- })
86
-
87
- test('fake() - Gera fakes com máscara', () => {
88
- for (let i = 0; i < 5; i += 1) {
89
- const pis = fake(true)
90
- expect(validate(pis)).toBeTruthy()
91
- expect(pis).toHaveLength(14)
92
- }
93
- })
94
-
95
- test('dv() - Verificando se o DV gerado está correto', () => {
96
- const list = [
97
- { num: '7128267738', expected: '0' },
98
- { num: 2379512695, expected: '5' },
99
- { num: '5001297380', expected: '3' },
100
- ]
101
-
102
- list.forEach((item) => {
103
- const calcDv = dv(item.num)
104
-
105
- expect(calcDv).toBe(item.expected)
106
- expect(typeof calcDv).toBe('string')
107
- })
108
- })
109
-
110
- test('mask() - Testando se a máscara foi gerada corretamente', () => {
111
- const list = [
112
- { num: '71282677380', expected: '712.82677.38-0' },
113
- { num: 23795126955, expected: '237.95126.95-5' },
114
- { num: '50012973803', expected: '500.12973.80-3' },
115
- ]
116
-
117
- list.forEach((item) => {
118
- const masked = mask(item.num)
119
-
120
- expect(masked).toBe(item.expected)
121
- expect(masked).toHaveLength(14)
122
- })
123
- })
124
- })
package/src/pisPasep.ts DELETED
@@ -1,128 +0,0 @@
1
- /**
2
- * isPIS()
3
- * Calcula se um código de PIS/PASEP/NIS/NIT no formato 268.27649.96-0 é válido. Não
4
- * valida o formato, portanto, 26827649960 é equivalente a 268.27649.96-0 para efeitos
5
- * desta validação.
6
- *
7
- * @doc
8
- * - O número de PIS deve possuir 11 caracteres
9
- *
10
- * - Os caracteres de 1 a 10 são a numeração documento
11
- *
12
- * - O caractere 11 é o dígito verificador.
13
- *
14
- * 1) Partes do número
15
- * _______________________________________________
16
- * | Número | D V |
17
- * | 2 6 8 . 2 7 6 4 9 . 9 6 - 0 |
18
- * |_________________________________________|_____|
19
- *
20
- * 2) Cálculo do DV.
21
- *
22
- * - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
23
- *
24
- * 2 6 8 2 7 6 4 9 9 6
25
- * x x x x x x x x x x
26
- * 3 2 9 8 7 6 5 4 3 2
27
- * = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
28
- *
29
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
30
- * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
31
- * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
32
- * Caso retorne 1, o resto será 0
33
- *
34
- *
35
- *
36
- *
37
- * Fonte: http://www.macoratti.net/alg_pis.htm
38
- *
39
- * @param {String} value Objeto postal no formato 268.27649.96-0
40
- * @returns {Boolean}
41
- */
42
-
43
- import {
44
- invalidListGenerator,
45
- sumElementsByMultipliers,
46
- sumToDV,
47
- clearValue,
48
- fakeNumber,
49
- applyMask,
50
- } from './utils'
51
-
52
- /**
53
- * dv()
54
- * Calcula o dígito verificador
55
- *
56
- * @param {Number|String} value
57
- * @returns {String}
58
- */
59
- export const dv = (value: string | number): string => {
60
- if (!value) throw new Error('PIS não informado')
61
-
62
- const pis = clearValue(value, 10)
63
-
64
- const invalidList = invalidListGenerator(10)
65
- if (invalidList.includes(pis)) {
66
- throw new Error('PIS não pode ser uma sequência de números iguais')
67
- }
68
-
69
- const sum = sumElementsByMultipliers(pis, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2])
70
-
71
- return String(sumToDV(sum))
72
- }
73
-
74
- /**
75
- * Aplica uma máscara ao número informado
76
- *
77
- * @param {String} value Número de Processo
78
- * @returns {String} Valor com a máscara
79
- */
80
- export const mask = (value: string | number): string => applyMask(value, '000.00000.00-0')
81
-
82
- /**
83
- * fake()
84
- * Gera um número válido
85
- *
86
- * @returns {String}
87
- */
88
- export const fake = (withMask: boolean = false): string => {
89
- const num = fakeNumber(10, true)
90
-
91
- const pis = `${num}${dv(num)}`
92
-
93
- if (withMask) return mask(pis)
94
- return pis
95
- }
96
-
97
- /**
98
- * validateOrFail()
99
- * Valida se um número de processo está correto e
100
- * retorna uma exceção se não estiver
101
- *
102
- * @returns {Boolean}
103
- */
104
- export const validateOrFail = (value: string | number): boolean => {
105
- const pis = clearValue(value, 11)
106
-
107
- if (dv(pis) !== pis.substring(10, 11)) {
108
- throw new Error('Dígito verificador inválido')
109
- }
110
-
111
- return true
112
- }
113
-
114
- /**
115
- * validate()
116
- * Valida se um número de processo está correto
117
- *
118
- * @returns {Boolean}
119
- */
120
- export const validate = (value: string | number): boolean => {
121
- try {
122
- return validateOrFail(value)
123
- } catch (error) {
124
- return false
125
- }
126
- }
127
-
128
- export default validate
@@ -1,132 +0,0 @@
1
- import isPostalCode, { dv, fake, mask, validate, validateOrFail } from './postalCode'
2
-
3
- describe('PostalCode', () => {
4
- test('isPostalCode() - Números válidos', () => {
5
- const list = [
6
- 'PN718252423BR',
7
- 'PO925539762BR',
8
- 'JT194690698BR',
9
- 'SV143851674BR',
10
- 'RG727348650CN',
11
- 'RY747622885CN',
12
- 'RY728187035CN',
13
- 'RH940629235CN',
14
- 'RY686586175CN',
15
- 'RY648001205CN',
16
- 'UJ776469464CN',
17
- 'LZ667841882CN',
18
- 'RS737783818NL',
19
- ]
20
-
21
- list.forEach((postalCode) => {
22
- expect(isPostalCode(postalCode)).toBeTruthy()
23
- })
24
- })
25
-
26
- test('validate() - Números válidos', () => {
27
- const list = [
28
- 'PN718252423BR',
29
- 'PO925539762BR',
30
- 'JT194690698BR',
31
- 'SV143851674BR',
32
- 'RG727348650CN',
33
- 'RY747622885CN',
34
- 'RY728187035CN',
35
- 'RH940629235CN',
36
- 'RY686586175CN',
37
- 'RY648001205CN',
38
- 'UJ776469464CN',
39
- 'LZ667841882CN',
40
- 'RS737783818NL',
41
- ]
42
-
43
- list.forEach((postalCode) => {
44
- expect(validate(postalCode)).toBeTruthy()
45
- })
46
- })
47
-
48
- test('validate() - Números inválidos', () => {
49
- const list = [
50
- 'PO925524762BR',
51
- 'JT194624698BR',
52
- 'SV143824674BR',
53
- 'RG727324650CN',
54
- 'RY747624885CN',
55
- 'RY728114035CN',
56
- ]
57
-
58
- list.forEach((postalCode) => {
59
- expect(validate(postalCode)).toBeFalsy()
60
- })
61
- })
62
-
63
- test('validateOrFail() - Números inválidos', () => {
64
- const list = [
65
- 'PO925524762BR',
66
- 'JT194624698BR',
67
- 'SV143824674BR',
68
- 'RG727324650CN',
69
- 'RY747624885CN',
70
- 'RY728114035CN',
71
- ]
72
-
73
- list.forEach((postalCode) => {
74
- expect(() => validateOrFail(postalCode)).toThrow()
75
- })
76
- })
77
-
78
- test('Parâmetro não informado', () => {
79
- expect(isPostalCode('')).toBeFalsy()
80
- expect(validate('')).toBeFalsy()
81
- expect(() => validateOrFail('')).toThrow()
82
- expect(() => dv('')).toThrow()
83
- })
84
-
85
- test('fake() - Gera fakes sem máscara', () => {
86
- for (let i = 0; i < 5; i += 1) {
87
- const postalCode = fake()
88
-
89
- expect(validate(postalCode)).toBeTruthy()
90
- expect(postalCode).toHaveLength(13)
91
- }
92
- })
93
-
94
- test('fake() - Gera fakes com máscara', () => {
95
- for (let i = 0; i < 5; i += 1) {
96
- const postalCode = fake(true)
97
-
98
- expect(validate(postalCode)).toBeTruthy()
99
- expect(postalCode).toHaveLength(13)
100
- }
101
- })
102
-
103
- test('dv() - Verificando se o DV gerado está correto', () => {
104
- const list = [
105
- { num: 'PN718252423BR', expected: '3' },
106
- { num: 'PO925539762BR', expected: '2' },
107
- { num: 'JT194690698BR', expected: '8' },
108
- ]
109
-
110
- list.forEach((item) => {
111
- const calcDv = dv(item.num)
112
-
113
- expect(calcDv).toBe(item.expected)
114
- expect(typeof calcDv).toBe('string')
115
- })
116
- })
117
-
118
- test('mask() - Testando se a máscara foi gerada corretamente', () => {
119
- const list = [
120
- { num: 'pn718252423br', expected: 'PN718252423BR' },
121
- { num: 'po925539762br', expected: 'PO925539762BR' },
122
- { num: 'jt194690698br', expected: 'JT194690698BR' },
123
- ]
124
-
125
- list.forEach((item) => {
126
- const masked = mask(item.num)
127
-
128
- expect(masked).toBe(item.expected)
129
- expect(masked).toHaveLength(13)
130
- })
131
- })
132
- })
package/src/postalCode.ts DELETED
@@ -1,164 +0,0 @@
1
- /**
2
- * isPostalCode()
3
- * Calcula se um código de rastreamento postal no formato JT194690698BR é válido.
4
- *
5
- * @doc
6
- * - O número de registro postal deve possuir 13 caracters no formato JT194690698BR.
7
- *
8
- * - Os caracteres 1 e 2 informam o tipo do objeto. Ex.: SX é Sedex, RC é carta registrada etc.
9
- *
10
- * - Os caracteres de 3 a 10 são a numeração sequencial do tipo do objeto.
11
- *
12
- * - O caractere 11 é o dígito verificador.
13
- *
14
- * - Os caracteres 12 e 13 representa o código do País de onde a postagem partiu.
15
- *
16
- * 1) Partes do número
17
- * ______ ___________________________ ______ _______
18
- * | Tipo | Número | DV | País |
19
- * | J T 1 9 4 6 9 0 6 9 8 B R |
20
- * |______|___________________________|______|_______|
21
- *
22
- * 2) Cálculo do DV.
23
- *
24
- * - Soma-se o produto das algarismos 3 a 10 pelos números 8, 6, 4, 2, 3, 5, 9, 7
25
- *
26
- * 1 9 4 6 9 0 6 9
27
- * x x x x x x x x
28
- * 8 6 4 2 3 5 9 7
29
- * = 8 +54 +16 +12 +18 +0 +54 +63 = 234
30
- *
31
- * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
32
- * 234 / 11 tem resto 3. 11 - 3 = 8. DV1 é 8.
33
- * Obs.: Caso o cálculo de DV1 retorne 0, o resultado será 5.
34
- * Caso retorne 1, o resto será 0
35
- *
36
- *
37
- *
38
- *
39
- * Fonte:
40
- *
41
- * @param {String} value Objeto postal no formato JT194690698BR
42
- * @returns {Boolean}
43
- */
44
-
45
- import { sumElementsByMultipliers, clearValue, fakeNumber } from './utils'
46
-
47
- /**
48
- * dv()
49
- * Calcula o dígito verificador
50
- *
51
- * @param {Number|String} value
52
- * @returns {String}
53
- */
54
- export const dv = (value: string | number): string => {
55
- if (!value) throw new Error('PIS não informado')
56
-
57
- const postalCode = clearValue(value, 8)
58
-
59
- const sum = sumElementsByMultipliers(postalCode, [8, 6, 4, 2, 3, 5, 9, 7])
60
-
61
- const rest = sum % 11
62
- // const specificities = { 0: { dv: 5 }, 1: { dv: 0 } }
63
-
64
- const specificities = [
65
- { rest: 0, dv: 5 },
66
- { rest: 1, dv: 0 },
67
- ]
68
-
69
- const specifity = specificities.find((item) => item.rest === rest)
70
-
71
- const DV = specifity ? specifity.dv : 11 - rest
72
-
73
- return String(DV)
74
- }
75
-
76
- /**
77
- * Aplica uma máscara ao número informado
78
- *
79
- * @param {String} value Número de Processo
80
- * @returns {String} Valor com a máscara
81
- */
82
- export const mask = (value: string | number): string => String(value).toLocaleUpperCase()
83
-
84
- /**
85
- * fake()
86
- * Gera um número válido
87
- *
88
- * @returns {String}
89
- */
90
- export const fake = (withMask: boolean = false): string => {
91
- const num = fakeNumber(8, true)
92
-
93
- const randLetter = (): string =>
94
- [
95
- 'A',
96
- 'B',
97
- 'C',
98
- 'D',
99
- 'E',
100
- 'F',
101
- 'G',
102
- 'H',
103
- 'I',
104
- 'J',
105
- 'K',
106
- 'L',
107
- 'M',
108
- 'N',
109
- 'O',
110
- 'P',
111
- 'Q',
112
- 'R',
113
- 'S',
114
- 'T',
115
- 'U',
116
- 'V',
117
- 'W',
118
- 'X',
119
- 'Y',
120
- 'Z',
121
- ][+(Math.random() * 25).toFixed(0)]
122
-
123
- const postalCode = `${randLetter()}${randLetter()}${num}${dv(num)}BR`
124
-
125
- if (withMask) return mask(postalCode)
126
- return postalCode
127
- }
128
-
129
- /**
130
- * validateOrFail()
131
- * Valida se um número de processo está correto e
132
- * retorna uma exceção se não estiver
133
- *
134
- * @returns {Boolean}
135
- */
136
- export const validateOrFail = (value: string | number): boolean => {
137
- const postalCode = clearValue(value, 9)
138
-
139
- if (!/^[a-z]{2}([\d]{9})[a-z]{2}$/gi.test(String(value))) {
140
- throw new Error('O número não está no formato "XX000000000XX"')
141
- }
142
-
143
- if (dv(value) !== postalCode.substring(8, 9)) {
144
- throw new Error('Dígito verificador inválido')
145
- }
146
-
147
- return true
148
- }
149
-
150
- /**
151
- * validate()
152
- * Valida se um número de processo está correto
153
- *
154
- * @returns {Boolean}
155
- */
156
- export const validate = (value: string | number): boolean => {
157
- try {
158
- return validateOrFail(value)
159
- } catch (error) {
160
- return false
161
- }
162
- }
163
-
164
- export default validate
@@ -1,110 +0,0 @@
1
- import isRenavam, { dv, fake, mask, validate, validateOrFail } from './renavam'
2
-
3
- describe('Renavam', () => {
4
- test('isRenavam() - Números válidos', () => {
5
- const list = [
6
- // valores com máscara
7
- '1952519770-3',
8
- '3394038959-9',
9
- // valores como inteiros
10
- 3607626105,
11
- 64090416160,
12
- // valores como string sem máscara
13
- '80499688374',
14
- '40650543741',
15
- ]
16
-
17
- list.forEach((renavam) => {
18
- expect(isRenavam(renavam)).toBeTruthy()
19
- })
20
- })
21
-
22
- test('validate() - Números válidos', () => {
23
- const list = [
24
- // valores com máscara
25
- '1952519770-3',
26
- '3394038959-9',
27
- // valores como inteiros
28
- 3607626105,
29
- 64090416160,
30
- // valores como string sem máscara
31
- '80499688374',
32
- '40650543741',
33
- ]
34
-
35
- list.forEach((renavam) => {
36
- expect(validate(renavam)).toBeTruthy()
37
- })
38
- })
39
-
40
- test('validate() - Números inválidos', () => {
41
- const list = ['19525227703', '33940229599', '03607226105', '64090226160', '80499228374']
42
-
43
- list.forEach((renavam) => {
44
- expect(validate(renavam)).toBeFalsy()
45
- })
46
- })
47
-
48
- test('validateOrFail() - Números inválidos', () => {
49
- const list = ['19525227703', '33940229599', '03607226105', '64090226160', '80499228374']
50
-
51
- list.forEach((renavam) => {
52
- expect(() => validateOrFail(renavam)).toThrow()
53
- })
54
- })
55
-
56
- test('Parâmetro não informado', () => {
57
- expect(isRenavam('')).toBeFalsy()
58
- expect(validate('')).toBeFalsy()
59
- expect(() => validateOrFail('')).toThrow()
60
- expect(() => dv('')).toThrow()
61
- })
62
-
63
- test('fake() - Gera fakes sem máscara', () => {
64
- for (let i = 0; i < 5; i += 1) {
65
- const renavam = fake()
66
-
67
- expect(validate(renavam)).toBeTruthy()
68
- expect(renavam).toHaveLength(11)
69
- }
70
- })
71
-
72
- test('fake() - Gera fakes com máscara', () => {
73
- for (let i = 0; i < 5; i += 1) {
74
- const renavam = fake(true)
75
-
76
- expect(validate(renavam)).toBeTruthy()
77
- expect(renavam).toHaveLength(12)
78
- }
79
- })
80
-
81
- test('dv() - Verificando se o DV gerado está correto', () => {
82
- const list = [
83
- { num: '1952519770', expected: '3' },
84
- { num: 952519770, expected: '6' },
85
- { num: 52519770, expected: '2' },
86
- ]
87
-
88
- list.forEach((item) => {
89
- const calcDv = dv(item.num)
90
-
91
- expect(calcDv).toBe(item.expected)
92
- expect(typeof calcDv).toBe('string')
93
- })
94
- })
95
-
96
- test('mask() - Testando se a máscara foi gerada corretamente', () => {
97
- const list = [
98
- { num: '19525197703', expected: '1952519770-3' },
99
- { num: 9525197703, expected: '0952519770-3' },
100
- { num: 525197703, expected: '0052519770-3' },
101
- ]
102
-
103
- list.forEach((item) => {
104
- const masked = mask(item.num)
105
-
106
- expect(masked).toBe(item.expected)
107
- expect(masked).toHaveLength(12)
108
- })
109
- })
110
- })