validation-br 0.8.3 → 1.0.0-b

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 (109) hide show
  1. package/.eslintignore +2 -0
  2. package/.eslintrc.js +76 -11
  3. package/.github/workflows/test.yml +39 -0
  4. package/.prettierignore +1 -0
  5. package/.prettierrc.js +7 -0
  6. package/dist/cnh.js +123 -0
  7. package/dist/cnh.js.map +1 -0
  8. package/dist/cnh.test.js +117 -0
  9. package/dist/cnh.test.js.map +1 -0
  10. package/dist/cnpj.js +112 -0
  11. package/dist/cnpj.js.map +1 -0
  12. package/dist/cnpj.test.js +141 -0
  13. package/dist/cnpj.test.js.map +1 -0
  14. package/dist/cpf.js +134 -0
  15. package/dist/cpf.js.map +1 -0
  16. package/dist/cpf.test.js +130 -0
  17. package/dist/cpf.test.js.map +1 -0
  18. package/dist/index.js +24 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/index.test.js +33 -0
  21. package/dist/index.test.js.map +1 -0
  22. package/dist/judicialProcess.js +153 -0
  23. package/dist/judicialProcess.js.map +1 -0
  24. package/dist/judicialProcess.test.js +123 -0
  25. package/dist/judicialProcess.test.js.map +1 -0
  26. package/dist/pisPasep.js +113 -0
  27. package/dist/pisPasep.js.map +1 -0
  28. package/dist/pisPasep.test.js +129 -0
  29. package/dist/pisPasep.test.js.map +1 -0
  30. package/dist/postalCode.js +150 -0
  31. package/dist/postalCode.js.map +1 -0
  32. package/dist/postalCode.test.js +135 -0
  33. package/dist/postalCode.test.js.map +1 -0
  34. package/dist/renavam.js +108 -0
  35. package/dist/renavam.js.map +1 -0
  36. package/dist/renavam.test.js +113 -0
  37. package/dist/renavam.test.js.map +1 -0
  38. package/dist/tituloEleitor.js +130 -0
  39. package/dist/tituloEleitor.js.map +1 -0
  40. package/dist/tituloEleitor.test.js +132 -0
  41. package/dist/tituloEleitor.test.js.map +1 -0
  42. package/dist/utils-applyMask.test.js +17 -0
  43. package/dist/utils-applyMask.test.js.map +1 -0
  44. package/dist/utils-clearValue.test.js +50 -0
  45. package/dist/utils-clearValue.test.js.map +1 -0
  46. package/dist/utils-fakeNumber.test.js +17 -0
  47. package/dist/utils-fakeNumber.test.js.map +1 -0
  48. package/dist/utils-insertAtPosition.test.js +16 -0
  49. package/dist/utils-insertAtPosition.test.js.map +1 -0
  50. package/dist/utils-invalidListGenerator.test.js +23 -0
  51. package/dist/utils-invalidListGenerator.test.js.map +1 -0
  52. package/dist/utils-removeFromPosition.test.js +16 -0
  53. package/dist/utils-removeFromPosition.test.js.map +1 -0
  54. package/dist/utils-sumElementsByMultipliers.test.js +32 -0
  55. package/dist/utils-sumElementsByMultipliers.test.js.map +1 -0
  56. package/dist/utils-sumToDV.test.js +16 -0
  57. package/dist/utils-sumToDV.test.js.map +1 -0
  58. package/dist/utils.js +167 -0
  59. package/dist/utils.js.map +1 -0
  60. package/jest.config.js +14 -0
  61. package/package.json +40 -48
  62. package/readme.md +243 -88
  63. package/src/cnh.test.ts +114 -0
  64. package/src/cnh.ts +140 -0
  65. package/src/cnpj.test.ts +136 -0
  66. package/{dist/documents/cnpj.js → src/cnpj.ts} +74 -21
  67. package/src/cpf.test.ts +125 -0
  68. package/src/cpf.ts +150 -0
  69. package/src/index.test.ts +35 -0
  70. package/src/index.ts +19 -0
  71. package/src/judicialProcess.test.ts +118 -0
  72. package/src/judicialProcess.ts +167 -0
  73. package/src/pisPasep.test.ts +124 -0
  74. package/src/pisPasep.ts +128 -0
  75. package/src/postalCode.test.ts +132 -0
  76. package/src/postalCode.ts +164 -0
  77. package/src/renavam.test.ts +110 -0
  78. package/src/renavam.ts +122 -0
  79. package/src/tituloEleitor.test.ts +129 -0
  80. package/src/tituloEleitor.ts +146 -0
  81. package/src/utils-applyMask.test.ts +17 -0
  82. package/src/utils-clearValue.test.ts +55 -0
  83. package/src/utils-fakeNumber.test.ts +19 -0
  84. package/src/utils-insertAtPosition.test.ts +15 -0
  85. package/src/utils-invalidListGenerator.test.ts +27 -0
  86. package/src/utils-removeFromPosition.test.ts +15 -0
  87. package/src/utils-sumElementsByMultipliers.test.ts +34 -0
  88. package/src/utils-sumToDV.test.ts +16 -0
  89. package/src/utils.ts +172 -0
  90. package/tsconfig.json +23 -0
  91. package/.babelrc +0 -15
  92. package/.prettierrc +0 -9
  93. package/dist/documents/cnh.js +0 -77
  94. package/dist/documents/cnh.js.map +0 -1
  95. package/dist/documents/cnpj.js.map +0 -1
  96. package/dist/documents/cpf.js +0 -83
  97. package/dist/documents/cpf.js.map +0 -1
  98. package/dist/documents/index.js +0 -23
  99. package/dist/documents/index.js.map +0 -1
  100. package/dist/documents/pis-pasep.js +0 -71
  101. package/dist/documents/pis-pasep.js.map +0 -1
  102. package/dist/documents/postal-code.js +0 -72
  103. package/dist/documents/postal-code.js.map +0 -1
  104. package/dist/documents/titulo-eleitor.js +0 -74
  105. package/dist/documents/titulo-eleitor.js.map +0 -1
  106. package/dist/lib/utils.js +0 -60
  107. package/dist/lib/utils.js.map +0 -1
  108. package/docs.md +0 -0
  109. package/index.js +0 -3
@@ -0,0 +1,136 @@
1
+ // import { isCNPJ } from './cnpj'
2
+ import isCNPJ, { dv, fake, mask, validate, validateOrFail } from './cnpj'
3
+
4
+ describe('CNPJ', () => {
5
+ test('isCNPJ() - Números válidos', () => {
6
+ const list = [
7
+ // Com máscara
8
+ '11.222.333/0001-81',
9
+ '73.797.980/0001-79',
10
+ '06.946.762/0001-61',
11
+ '96.051.576/0001-57',
12
+ '55.585.709/0001-98',
13
+ // inteiro
14
+ 99360938000180,
15
+ 23693443000100,
16
+ // string
17
+ '32432147000147',
18
+ '91951438000100',
19
+ ]
20
+
21
+ list.forEach((cnpj) => {
22
+ expect(isCNPJ(cnpj)).toBeTruthy()
23
+ })
24
+ })
25
+
26
+ test('validate() - Números válidos', () => {
27
+ const list = [
28
+ // Com máscara
29
+ '11.222.333/0001-81',
30
+ '73.797.980/0001-79',
31
+ '06.946.762/0001-61',
32
+ '96.051.576/0001-57',
33
+ '55.585.709/0001-98',
34
+ // inteiro
35
+ 99360938000180,
36
+ 23693443000100,
37
+ // string
38
+ '32432147000147',
39
+ '91951438000100',
40
+ ]
41
+
42
+ list.forEach((cnpj) => {
43
+ expect(validate(cnpj)).toBeTruthy()
44
+ })
45
+ })
46
+
47
+ test('validate() - Números inválidos', () => {
48
+ const list = [
49
+ '53.797.980/0001-79',
50
+ '36.946.762/0001-61',
51
+ '26.051.576/0001-57',
52
+ '85.585.709/0001-98',
53
+ '39360938000180',
54
+ '93693443000100',
55
+ '12432147000147',
56
+ '61951438000100',
57
+ '11111111111111',
58
+ ]
59
+
60
+ list.forEach((cnpj) => {
61
+ expect(validate(cnpj)).toBeFalsy()
62
+ })
63
+ })
64
+
65
+ test('validateOrFail() - Números inválidos', () => {
66
+ const list = [
67
+ '53.797.980/0001-79',
68
+ '36.946.762/0001-61',
69
+ '26.051.576/0001-57',
70
+ '85.585.709/0001-98',
71
+ '39360938000180',
72
+ '93693443000100',
73
+ '12432147000147',
74
+ '61951438000100',
75
+ '11111111111111',
76
+ ]
77
+
78
+ list.forEach((cnpj) => {
79
+ expect(() => validateOrFail(cnpj)).toThrow()
80
+ })
81
+ })
82
+
83
+ test('Parâmetro não informado', () => {
84
+ expect(isCNPJ('')).toBeFalsy()
85
+ expect(validate('')).toBeFalsy()
86
+ expect(() => validateOrFail('')).toThrow()
87
+ expect(() => dv('')).toThrow()
88
+ })
89
+
90
+ test('fake() - Gera fakes sem máscara', () => {
91
+ for (let i = 0; i < 5; i += 1) {
92
+ const cnpj = fake()
93
+ expect(validate(cnpj)).toBeTruthy()
94
+ expect(cnpj).toHaveLength(14)
95
+ }
96
+ })
97
+
98
+ test('fake() - Gera fakes com máscara', () => {
99
+ for (let i = 0; i < 5; i += 1) {
100
+ const cnpj = fake(true)
101
+ expect(validate(cnpj)).toBeTruthy()
102
+ expect(cnpj).toHaveLength(18)
103
+ }
104
+ })
105
+
106
+ test('dv() - Verificando se o DV gerado está correto', () => {
107
+ const list = [
108
+ { num: '112223330001', expected: '81' },
109
+ { num: 993609380001, expected: '80' },
110
+ { num: '324321470001', expected: '47' },
111
+ ]
112
+
113
+ list.forEach((item) => {
114
+ const calcDv = dv(item.num)
115
+
116
+ expect(calcDv).toBe(item.expected)
117
+ expect(typeof calcDv).toBe('string')
118
+ })
119
+ })
120
+
121
+ test('mask() - Testando se a máscara foi gerada corretamente', () => {
122
+ const list = [
123
+ { value: '11222333000181', expected: '11.222.333/0001-81' },
124
+ { value: 99360938000180, expected: '99.360.938/0001-80' },
125
+ { value: '32432147000147', expected: '32.432.147/0001-47' },
126
+ { value: 432147000147, expected: '00.432.147/0001-47' },
127
+ ]
128
+
129
+ list.forEach((item) => {
130
+ const masked = mask(item.value)
131
+
132
+ expect(masked).toBe(item.expected)
133
+ expect(masked).toHaveLength(18)
134
+ })
135
+ })
136
+ })
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- var _require = require('../lib/utils'),
4
- invalidListGenerator = _require.invalidListGenerator,
5
- sumElementsByMultipliers = _require.sumElementsByMultipliers,
6
- sumToDV = _require.sumToDV;
7
1
  /**
8
2
  * isCNPJ()
9
3
  * Calcula se um CNPJ é válido
@@ -56,20 +50,79 @@ var _require = require('../lib/utils'),
56
50
  * @returns {Boolean}
57
51
  */
58
52
 
53
+ import {
54
+ invalidListGenerator,
55
+ sumElementsByMultipliers,
56
+ sumToDV,
57
+ clearValue,
58
+ fakeNumber,
59
+ applyMask,
60
+ } from './utils'
61
+
62
+ export const dv = (value: string | number): string => {
63
+ const cnpj = clearValue(value, 12)
64
+
65
+ const blackList = invalidListGenerator(12)
66
+ if (blackList.includes(cnpj)) {
67
+ throw new Error('CNPJ é obrigatório')
68
+ }
69
+
70
+ const sum1 = sumElementsByMultipliers(cnpj.substring(0, 12), '543298765432')
71
+ const dv1 = sumToDV(sum1)
72
+
73
+ const sum2 = sumElementsByMultipliers(cnpj.substring(0, 12) + dv1, '6543298765432')
74
+ const dv2 = sumToDV(sum2)
75
+
76
+ return `${dv1}${dv2}`
77
+ }
78
+
79
+ /**
80
+ * Aplica uma máscara ao número informado
81
+ *
82
+ * @param {String} value Número de Processo
83
+ * @returns {String} Valor com a máscara
84
+ */
85
+ export const mask = (value: string | number): string => applyMask(value, '00.000.000/0000-00')
86
+
87
+ /**
88
+ *
89
+ *
90
+ */
91
+ export const fake = (withMask: boolean = false): string => {
92
+ const num = fakeNumber(12, true)
93
+
94
+ const cnpj = `${num}${dv(num)}`
95
+
96
+ if (withMask) return mask(cnpj)
97
+ return cnpj
98
+ }
59
99
 
60
- var isCNPJ = function isCNPJ() {
61
- var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
62
- var cnpj = value.replace(/[^\d]+/g, '');
63
- var blackList = invalidListGenerator(14);
64
- if (!cnpj || cnpj.length !== 14 || blackList.includes(cnpj)) return false;
65
- var sum1 = sumElementsByMultipliers(cnpj.substr(0, 12), '543298765432');
66
- var sum2 = sumElementsByMultipliers(cnpj.substr(0, 13), '6543298765432');
67
- var dv1 = sumToDV(sum1);
68
- var dv2 = sumToDV(sum2);
69
- if (dv1 !== Number(cnpj.charAt(12))) return false;
70
- if (dv2 !== Number(cnpj.charAt(13))) return false;
71
- return true;
72
- };
100
+ /**
101
+ * validate()
102
+ * Valida se um número de processo está correto
103
+ *
104
+ */
105
+ export const validateOrFail = (value: string | number): boolean => {
106
+ const cnpj = clearValue(value, 14)
107
+
108
+ if (dv(cnpj) !== cnpj.substring(12, 14)) {
109
+ throw new Error('Dígito verificador inválido')
110
+ }
111
+
112
+ return true
113
+ }
114
+
115
+ /**
116
+ * validate()
117
+ * Valida se um número de processo está correto
118
+ *
119
+ */
120
+ export const validate = (value: string | number): boolean => {
121
+ try {
122
+ return validateOrFail(value)
123
+ } catch (error) {
124
+ return false
125
+ }
126
+ }
73
127
 
74
- module.exports = isCNPJ;
75
- //# sourceMappingURL=cnpj.js.map
128
+ export default validate
@@ -0,0 +1,125 @@
1
+ import isCPF, { dv, fake, mask, validate, validateOrFail } from './cpf'
2
+
3
+ describe('CPF', () => {
4
+ test('isCPF() - Números válidos', () => {
5
+ const list = [
6
+ // masked
7
+ '133.782.710-00',
8
+ '400.448.260-79',
9
+ // integer
10
+ 8796742020, // começa com zero
11
+ 74172316085,
12
+ // string
13
+ '15886489070',
14
+ '90889477086',
15
+ ]
16
+
17
+ list.forEach((cpf) => {
18
+ expect(isCPF(cpf)).toBeTruthy()
19
+ })
20
+ })
21
+
22
+ test('validate() - Números válidos', () => {
23
+ const list = [
24
+ // masked
25
+ '133.782.710-00',
26
+ '400.448.260-79',
27
+ // integer
28
+ 8796742020, // começa com zero
29
+ 74172316085,
30
+ // string
31
+ '15886489070',
32
+ '90889477086',
33
+ ]
34
+
35
+ list.forEach((cpf) => {
36
+ expect(validate(cpf)).toBeTruthy()
37
+ })
38
+ })
39
+
40
+ test('validate() - Números inválidos', () => {
41
+ const list = [
42
+ '287.967.420-20',
43
+ '333.782.710-00',
44
+ '200.448.260-79',
45
+ '24172316085',
46
+ '25886489070',
47
+ '20889477086',
48
+ '11111111111',
49
+ ]
50
+
51
+ list.forEach((cpf) => {
52
+ expect(validate(cpf)).toBeFalsy()
53
+ })
54
+ })
55
+
56
+ test('validateOrFail() - Números inválidos', () => {
57
+ const list = [
58
+ '287.967.420-20',
59
+ '333.782.710-00',
60
+ '200.448.260-79',
61
+ '24172316085',
62
+ '25886489070',
63
+ '20889477086',
64
+ '11111111111',
65
+ ]
66
+
67
+ list.forEach((cpf) => {
68
+ expect(() => validateOrFail(cpf)).toThrow()
69
+ })
70
+ })
71
+
72
+ test('Parâmetro não informado', () => {
73
+ expect(isCPF('')).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 cpf = fake()
82
+ expect(validate(cpf)).toBeTruthy()
83
+ expect(cpf).toHaveLength(11)
84
+ }
85
+ })
86
+
87
+ test('fake() - Gera fakes com máscara', () => {
88
+ for (let i = 0; i < 5; i += 1) {
89
+ const cpf = fake(true)
90
+ expect(validate(cpf)).toBeTruthy()
91
+ expect(cpf).toHaveLength(14)
92
+ }
93
+ })
94
+
95
+ test('dv() - Verificando se o DV gerado está correto', () => {
96
+ const list = [
97
+ { num: '741723160', expected: '85' },
98
+ { num: 158864890, expected: '70' },
99
+ { num: '908894770', expected: '86' },
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: '74172316085', expected: '741.723.160-85' },
113
+ { num: 15886489070, expected: '158.864.890-70' },
114
+ { num: '90889477086', expected: '908.894.770-86' },
115
+ { num: 889477086, expected: '008.894.770-86' },
116
+ ]
117
+
118
+ list.forEach((item) => {
119
+ const masked = mask(item.num)
120
+
121
+ expect(masked).toBe(item.expected)
122
+ expect(masked).toHaveLength(14)
123
+ })
124
+ })
125
+ })
package/src/cpf.ts ADDED
@@ -0,0 +1,150 @@
1
+ /**
2
+ * isCPF()
3
+ * Calcula se um CPF é válido
4
+ *
5
+ * @doc
6
+ * CPF deve possuir 11 dígitos.
7
+ *
8
+ * - Os caracteres 1 a 8 são números sequenciais definidos pela Receita Federal
9
+ *
10
+ * - O caractere 9 refere-se à região fiscal emissora do documento
11
+ * 1 – DF, GO, MS, MT e TO
12
+ * 2 – AC, AM, AP, PA, RO e RR
13
+ * 3 – CE, MA e PI
14
+ * 4 – AL, PB, PE, RN
15
+ * 5 – BA e SE
16
+ * 6 – MG
17
+ * 7 – ES e RJ
18
+ * 8 – SP
19
+ * 9 – PR e SC
20
+ * 0 – RS
21
+ *
22
+ * - Os caracteres 10 e 11 são dígitos verificadores.
23
+ *
24
+ * 1) Partes do número
25
+ * ------------------------------------------------
26
+ * | Número | R | DV |
27
+ * 2 8 0 . 0 1 2 . 3 8 9 - 3 8
28
+ *
29
+ * 2) Cálculo do primeiro DV.
30
+ *
31
+ * - Soma-se o produto das algarismos 1 a 9 pelos números 10, 9, 8, 7, 6, 5, 4, 3, 2
32
+ *
33
+ * 2 8 0 0 1 2 3 8 9
34
+ * x x x x x x x x x
35
+ * 10 9 8 7 6 5 4 3 2
36
+ * = 20 +72 +0 +0 +6 +10 +12 +24 +18 = 162
37
+ *
38
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
39
+ * 162 / 11 tem resto 8. 11 - 8 = 3. DV1 é 3.
40
+ * Obs.: Caso o cálculo de DV1 retorne 10, o resultado será 0.
41
+ *
42
+ * 3) Cálculo do segundo DV.
43
+ *
44
+ * - Soma-se o produto das algarismos 1 a 10 pelos números 11, 10, 9, 8, 7, 6, 5, 4, 3, 2
45
+ *
46
+ * 2 8 0 0 1 2 3 8 9 3
47
+ * x x x x x x x x x x
48
+ * 11 10 9 8 7 6 5 4 3 2
49
+ * = 22 +80 +0 +0 +7 +12 +15 +32 +27 = 201
50
+ *
51
+ * - O somatório encontrado é dividido por 11 e o resultado é subtraído de 11
52
+ * 201 / 11 tem resto 3. 11 - 3 = 8. DV2 é 8.
53
+ * Obs.: Caso o cálculo de DV2 retorne 10, o resultado será 0.
54
+ *
55
+ * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-cpf/
56
+ *
57
+ * @param {String} value Título eleitoral
58
+ * @returns {Boolean}
59
+ */
60
+
61
+ import {
62
+ invalidListGenerator,
63
+ sumElementsByMultipliers,
64
+ sumToDV,
65
+ clearValue,
66
+ fakeNumber,
67
+ applyMask,
68
+ } from './utils'
69
+
70
+ /**
71
+ * dv()
72
+ * Calcula o dígito verificador de um CPF
73
+ *
74
+ * @param {Number|String} value
75
+ * @returns {String}
76
+ */
77
+ export const dv = (value: string | number): string => {
78
+ if (!value) throw new Error('CPF não informado')
79
+
80
+ const cpf = clearValue(value, 9)
81
+
82
+ const invalidList = invalidListGenerator(9)
83
+ if (invalidList.includes(cpf)) {
84
+ throw new Error('CPF não pode ser uma sequência de números iguais')
85
+ }
86
+
87
+ const sum1 = sumElementsByMultipliers(cpf, [10, 9, 8, 7, 6, 5, 4, 3, 2])
88
+ const dv1 = sumToDV(sum1)
89
+
90
+ const sum2 = sumElementsByMultipliers(cpf + dv1, [11, 10, 9, 8, 7, 6, 5, 4, 3, 2])
91
+ const dv2 = sumToDV(sum2)
92
+
93
+ return `${dv1}${dv2}`
94
+ }
95
+
96
+ /**
97
+ * Aplica uma máscara ao número informado
98
+ *
99
+ * @param {String} value Número de Processo
100
+ * @returns {String} Valor com a máscara
101
+ */
102
+ export const mask = (value: string | number): string => applyMask(value, '000.000.000-00')
103
+
104
+ /**
105
+ * fake()
106
+ * Gera um número válido
107
+ *
108
+ * @returns {String}
109
+ */
110
+ export const fake = (withMask: boolean = false): string => {
111
+ const num = fakeNumber(9, true)
112
+
113
+ const cpf = `${num}${dv(num)}`
114
+
115
+ if (withMask) return mask(cpf)
116
+ return cpf
117
+ }
118
+
119
+ /**
120
+ * validateOrFail()
121
+ * Valida se um número de processo está correto e
122
+ * retorna uma exceção se não estiver
123
+ *
124
+ * @returns {Boolean}
125
+ */
126
+ export const validateOrFail = (value: string | number): boolean => {
127
+ const cpf = clearValue(value, 11)
128
+
129
+ if (dv(cpf) !== cpf.substring(9, 11)) {
130
+ throw new Error('Dígito verificador inválido')
131
+ }
132
+
133
+ return true
134
+ }
135
+
136
+ /**
137
+ * validate()
138
+ * Valida se um número de processo está correto
139
+ *
140
+ * @returns {Boolean}
141
+ */
142
+ export const validate = (value: string | number): boolean => {
143
+ try {
144
+ return validateOrFail(value)
145
+ } catch (error) {
146
+ return false
147
+ }
148
+ }
149
+
150
+ export default validate
@@ -0,0 +1,35 @@
1
+ import ValidateBR from './index'
2
+
3
+ describe('ValidateBR', () => {
4
+ test('Deve importar isCNH', () => {
5
+ expect(ValidateBR.isCNH).toBeDefined()
6
+ })
7
+
8
+ test('Deve importar isCNPJ', () => {
9
+ expect(ValidateBR.isCNPJ).toBeDefined()
10
+ })
11
+
12
+ test('Deve importar isCPF', () => {
13
+ expect(ValidateBR.isCPF).toBeDefined()
14
+ })
15
+
16
+ test('Deve importar isJudicialProcess', () => {
17
+ expect(ValidateBR.isJudicialProcess).toBeDefined()
18
+ })
19
+
20
+ test('Deve importar isPIS', () => {
21
+ expect(ValidateBR.isPIS).toBeDefined()
22
+ })
23
+
24
+ test('Deve importar isPostalCode', () => {
25
+ expect(ValidateBR.isPostalCode).toBeDefined()
26
+ })
27
+
28
+ test('Deve importar isRenavam', () => {
29
+ expect(ValidateBR.isRenavam).toBeDefined()
30
+ })
31
+
32
+ test('Deve importar isTituloEleitor', () => {
33
+ expect(ValidateBR.isTituloEleitor).toBeDefined()
34
+ })
35
+ })
package/src/index.ts ADDED
@@ -0,0 +1,19 @@
1
+ import isCNH from './cnh'
2
+ import isCNPJ from './cnpj'
3
+ import isCPF from './cpf'
4
+ import isJudicialProcess from './judicialProcess'
5
+ import isPIS from './pisPasep'
6
+ import isPostalCode from './postalCode'
7
+ import isRenavam from './renavam'
8
+ import isTituloEleitor from './tituloEleitor'
9
+
10
+ export default {
11
+ isCNH,
12
+ isCNPJ,
13
+ isCPF,
14
+ isJudicialProcess,
15
+ isPIS,
16
+ isPostalCode,
17
+ isRenavam,
18
+ isTituloEleitor,
19
+ }
@@ -0,0 +1,118 @@
1
+ import isJudicialProcess, { dv, fake, mask, validate, validateOrFail } from './judicialProcess'
2
+
3
+ describe('JudicialProcess', () => {
4
+ test('isJudicialProcess() - Números válidos', () => {
5
+ const list = [
6
+ '20802520125150049',
7
+ '61052838320098130024',
8
+ '00110060720168200100',
9
+ '08002785520134058400',
10
+ '08002732820164058400',
11
+ ]
12
+
13
+ list.forEach((judicialProcess) => {
14
+ expect(isJudicialProcess(judicialProcess)).toBeTruthy()
15
+ })
16
+ })
17
+
18
+ test('validate() - Números válidos', () => {
19
+ const list = [
20
+ '20802520125150049',
21
+ '61052838320098130024',
22
+ '00110060720168200100',
23
+ '08002785520134058400',
24
+ '08002732820164058400',
25
+ ]
26
+
27
+ list.forEach((judicialProcess) => {
28
+ expect(validate(judicialProcess)).toBeTruthy()
29
+ })
30
+ })
31
+
32
+ test('validate() - Números inválidos', () => {
33
+ const list = [
34
+ '20802520125150044',
35
+ '61052838320098130023',
36
+ '00110060720168200102',
37
+ '08002785520134058401',
38
+ '08002732820164058406',
39
+ '08002732820160058400', // Órgão judiciário igual a 0
40
+ ]
41
+
42
+ list.forEach((judicialProcess) => {
43
+ expect(validate(judicialProcess)).toBeFalsy()
44
+ })
45
+ })
46
+
47
+ test('validateOrFail() - Números inválidos', () => {
48
+ const list = [
49
+ '20802520125150044',
50
+ '61052838320098130023',
51
+ '00110060720168200102',
52
+ '08002785520134058401',
53
+ '08002732820164058406',
54
+ '08002732820160058400', // Órgão judiciário igual a 0
55
+ ]
56
+
57
+ list.forEach((judicialProcess) => {
58
+ expect(() => validateOrFail(judicialProcess)).toThrow()
59
+ })
60
+ })
61
+
62
+ test('Parâmetro não informado', () => {
63
+ expect(isJudicialProcess('')).toBeFalsy()
64
+ expect(validate('')).toBeFalsy()
65
+ expect(() => validateOrFail('')).toThrow()
66
+ expect(() => dv('')).toThrow()
67
+ })
68
+
69
+ test('fake() - Gera fakes sem máscara', () => {
70
+ for (let i = 0; i < 5; i += 1) {
71
+ const judicialProcess = fake()
72
+ expect(validate(judicialProcess)).toBeTruthy()
73
+ expect(judicialProcess).toHaveLength(20)
74
+ }
75
+ })
76
+
77
+ test('fake() - Gera fakes com máscara', () => {
78
+ for (let i = 0; i < 5; i += 1) {
79
+ const judicialProcess = fake(true)
80
+ expect(validate(judicialProcess)).toBeTruthy()
81
+ expect(judicialProcess).toHaveLength(25)
82
+ }
83
+ })
84
+
85
+ test('dv() - Verificando se o DV gerado está correto', () => {
86
+ const list = [
87
+ { num: '000208020125150049', expected: '25' },
88
+ { num: '610528320098130024', expected: '83' },
89
+ { num: '001100620168200100', expected: '07' },
90
+ { num: '080027820134058400', expected: '55' },
91
+ { num: '080027320164058400', expected: '28' },
92
+ ]
93
+
94
+ list.forEach((item) => {
95
+ const calcDv = dv(item.num)
96
+
97
+ expect(calcDv).toBe(item.expected)
98
+ expect(typeof calcDv).toBe('string')
99
+ })
100
+ })
101
+
102
+ test('mask() - Testando se a máscara foi gerada corretamente', () => {
103
+ const list = [
104
+ { num: '20802520125150049', expected: '0002080-25.2012.5.15.0049' },
105
+ { num: '61052838320098130024', expected: '6105283-83.2009.8.13.0024' },
106
+ { num: '00110060720168200100', expected: '0011006-07.2016.8.20.0100' },
107
+ { num: '08002785520134058400', expected: '0800278-55.2013.4.05.8400' },
108
+ { num: '08002732820164058400', expected: '0800273-28.2016.4.05.8400' },
109
+ ]
110
+
111
+ list.forEach((item) => {
112
+ const masked = mask(item.num)
113
+
114
+ expect(masked).toBe(item.expected)
115
+ expect(masked).toHaveLength(25)
116
+ })
117
+ })
118
+ })