validation-br 1.5.2 → 2.0.0-next-1

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 (197) hide show
  1. package/.prettierrc +9 -0
  2. package/dist/jest.config.d.ts +8 -0
  3. package/dist/jest.config.d.ts.map +1 -0
  4. package/dist/jest.config.js +154 -0
  5. package/dist/jest.config.js.map +1 -0
  6. package/dist/test/_helpers/array_random.spec.d.ts +2 -0
  7. package/dist/test/_helpers/array_random.spec.d.ts.map +1 -0
  8. package/dist/test/_helpers/array_random.spec.js +13 -0
  9. package/dist/test/_helpers/array_random.spec.js.map +1 -0
  10. package/dist/test/_helpers/crc.spec.d.ts +2 -0
  11. package/dist/test/_helpers/crc.spec.d.ts.map +1 -0
  12. package/dist/test/_helpers/crc.spec.js +11 -0
  13. package/dist/test/_helpers/crc.spec.js.map +1 -0
  14. package/dist/test/carplate.spec.d.ts +2 -0
  15. package/dist/test/carplate.spec.d.ts.map +1 -0
  16. package/dist/test/carplate.spec.js +141 -0
  17. package/dist/test/carplate.spec.js.map +1 -0
  18. package/dist/test/cnh.spec.d.ts +2 -0
  19. package/dist/test/cnh.spec.d.ts.map +1 -0
  20. package/dist/test/cnh.spec.js +60 -0
  21. package/dist/test/cnh.spec.js.map +1 -0
  22. package/dist/test/cnpj.spec.d.ts +2 -0
  23. package/dist/test/cnpj.spec.d.ts.map +1 -0
  24. package/dist/test/cnpj.spec.js +105 -0
  25. package/dist/test/cnpj.spec.js.map +1 -0
  26. package/dist/test/cpf.spec.d.ts +2 -0
  27. package/dist/test/cpf.spec.d.ts.map +1 -0
  28. package/dist/test/cpf.spec.js +66 -0
  29. package/dist/test/cpf.spec.js.map +1 -0
  30. package/dist/test/index.test.d.ts +2 -0
  31. package/dist/test/index.test.d.ts.map +1 -0
  32. package/dist/test/index.test.js +77 -0
  33. package/dist/test/index.test.js.map +1 -0
  34. package/dist/test/judicial-process.spec.d.ts +2 -0
  35. package/dist/test/judicial-process.spec.d.ts.map +1 -0
  36. package/dist/test/judicial-process.spec.js +101 -0
  37. package/dist/test/judicial-process.spec.js.map +1 -0
  38. package/dist/test/nup17.spec.d.ts +2 -0
  39. package/dist/test/nup17.spec.d.ts.map +1 -0
  40. package/dist/test/nup17.spec.js +70 -0
  41. package/dist/test/nup17.spec.js.map +1 -0
  42. package/dist/test/phone.spec.d.ts +2 -0
  43. package/dist/test/phone.spec.d.ts.map +1 -0
  44. package/dist/test/phone.spec.js +67 -0
  45. package/dist/test/phone.spec.js.map +1 -0
  46. package/dist/test/pis-pasep.spec.d.ts +2 -0
  47. package/dist/test/pis-pasep.spec.d.ts.map +1 -0
  48. package/dist/test/pis-pasep.spec.js +65 -0
  49. package/dist/test/pis-pasep.spec.js.map +1 -0
  50. package/dist/test/pix-copy-paste.spec.d.ts +2 -0
  51. package/dist/test/pix-copy-paste.spec.d.ts.map +1 -0
  52. package/dist/test/pix-copy-paste.spec.js +31 -0
  53. package/dist/test/pix-copy-paste.spec.js.map +1 -0
  54. package/dist/test/pix-key.spec.d.ts +2 -0
  55. package/dist/test/pix-key.spec.d.ts.map +1 -0
  56. package/dist/test/pix-key.spec.js +36 -0
  57. package/dist/test/pix-key.spec.js.map +1 -0
  58. package/dist/test/postal-track-code.test.d.ts +2 -0
  59. package/dist/test/postal-track-code.test.d.ts.map +1 -0
  60. package/dist/test/postal-track-code.test.js +75 -0
  61. package/dist/test/postal-track-code.test.js.map +1 -0
  62. package/dist/test/renavam.spec.d.ts +2 -0
  63. package/dist/test/renavam.spec.d.ts.map +1 -0
  64. package/dist/test/renavam.spec.js +63 -0
  65. package/dist/test/renavam.spec.js.map +1 -0
  66. package/dist/test/tituloEleitor.spec.d.ts +2 -0
  67. package/dist/test/tituloEleitor.spec.d.ts.map +1 -0
  68. package/dist/test/tituloEleitor.spec.js +68 -0
  69. package/dist/test/tituloEleitor.spec.js.map +1 -0
  70. package/dist/test/utils-applyMask.test.d.ts +2 -0
  71. package/dist/test/utils-applyMask.test.d.ts.map +1 -0
  72. package/dist/test/utils-applyMask.test.js +18 -0
  73. package/dist/test/utils-applyMask.test.js.map +1 -0
  74. package/dist/test/utils-checkRepeatedSequence.test.d.ts +2 -0
  75. package/dist/test/utils-checkRepeatedSequence.test.d.ts.map +1 -0
  76. package/dist/test/utils-checkRepeatedSequence.test.js +18 -0
  77. package/dist/test/utils-checkRepeatedSequence.test.js.map +1 -0
  78. package/dist/test/utils-clearValue.test.d.ts +2 -0
  79. package/dist/test/utils-clearValue.test.d.ts.map +1 -0
  80. package/dist/test/utils-clearValue.test.js +74 -0
  81. package/dist/test/utils-clearValue.test.js.map +1 -0
  82. package/dist/test/utils-fakeNumber.test.d.ts +2 -0
  83. package/dist/test/utils-fakeNumber.test.d.ts.map +1 -0
  84. package/dist/test/utils-fakeNumber.test.js +24 -0
  85. package/dist/test/utils-fakeNumber.test.js.map +1 -0
  86. package/dist/test/utils-insertAtPosition.test.d.ts +2 -0
  87. package/dist/test/utils-insertAtPosition.test.d.ts.map +1 -0
  88. package/dist/test/utils-insertAtPosition.test.js +16 -0
  89. package/dist/test/utils-insertAtPosition.test.js.map +1 -0
  90. package/dist/test/utils-randomLetter.test.d.ts +2 -0
  91. package/dist/test/utils-randomLetter.test.d.ts.map +1 -0
  92. package/dist/test/utils-randomLetter.test.js +14 -0
  93. package/dist/test/utils-randomLetter.test.js.map +1 -0
  94. package/dist/test/utils-removeFromPosition.test.d.ts +2 -0
  95. package/dist/test/utils-removeFromPosition.test.d.ts.map +1 -0
  96. package/dist/test/utils-removeFromPosition.test.js +16 -0
  97. package/dist/test/utils-removeFromPosition.test.js.map +1 -0
  98. package/dist/test/utils-sumElementsByMultipliers.test.d.ts +2 -0
  99. package/dist/test/utils-sumElementsByMultipliers.test.d.ts.map +1 -0
  100. package/dist/test/utils-sumElementsByMultipliers.test.js +23 -0
  101. package/dist/test/utils-sumElementsByMultipliers.test.js.map +1 -0
  102. package/dist/test/utils-sumToDV.test.d.ts +2 -0
  103. package/dist/test/utils-sumToDV.test.d.ts.map +1 -0
  104. package/dist/test/utils-sumToDV.test.js +17 -0
  105. package/dist/test/utils-sumToDV.test.js.map +1 -0
  106. package/dist/tsconfig.tsbuildinfo +1 -0
  107. package/eslint.config.mjs +11 -0
  108. package/jest.config.ts +210 -0
  109. package/package.json +3 -3
  110. package/readme.md +3 -2
  111. package/test/_helpers/array_random.spec.ts +12 -0
  112. package/test/_helpers/crc.spec.ts +13 -0
  113. package/test/carplate.spec.ts +161 -0
  114. package/test/cnh.spec.ts +71 -0
  115. package/test/cnpj.spec.ts +127 -0
  116. package/test/cpf.spec.ts +76 -0
  117. package/test/index.test.ts +112 -0
  118. package/test/judicial-process.spec.ts +131 -0
  119. package/test/nup17.spec.ts +79 -0
  120. package/test/phone.spec.ts +75 -0
  121. package/test/pis-pasep.spec.ts +73 -0
  122. package/test/pix-copy-paste.spec.ts +37 -0
  123. package/test/pix-key.spec.ts +41 -0
  124. package/test/postal-track-code.test.ts +83 -0
  125. package/test/renavam.spec.ts +71 -0
  126. package/test/tituloEleitor.spec.ts +72 -0
  127. package/test/utils-applyMask.test.ts +17 -0
  128. package/test/utils-checkRepeatedSequence.test.ts +17 -0
  129. package/test/utils-clearValue.test.ts +85 -0
  130. package/test/utils-fakeNumber.test.ts +28 -0
  131. package/test/utils-insertAtPosition.test.ts +15 -0
  132. package/test/utils-randomLetter.test.ts +14 -0
  133. package/test/utils-removeFromPosition.test.ts +15 -0
  134. package/test/utils-sumElementsByMultipliers.test.ts +24 -0
  135. package/test/utils-sumToDV.test.ts +16 -0
  136. package/todo.md +18 -0
  137. package/tsconfig.json +103 -23
  138. package/.github/workflows/test.yml +0 -39
  139. package/.prettierrc.js +0 -7
  140. package/dist/cnh.d.ts +0 -91
  141. package/dist/cnh.js +0 -139
  142. package/dist/cnh.js.map +0 -1
  143. package/dist/cnh.test.d.ts +0 -1
  144. package/dist/cnpj.d.ts +0 -114
  145. package/dist/cnpj.js +0 -180
  146. package/dist/cnpj.js.map +0 -1
  147. package/dist/cnpj.test.d.ts +0 -1
  148. package/dist/cpf.d.ts +0 -99
  149. package/dist/cpf.js +0 -147
  150. package/dist/cpf.js.map +0 -1
  151. package/dist/cpf.test.d.ts +0 -1
  152. package/dist/data/ValidationBRError.d.ts +0 -6
  153. package/dist/data/ValidationBRError.js +0 -10
  154. package/dist/data/ValidationBRError.js.map +0 -1
  155. package/dist/index.d.ts +0 -21
  156. package/dist/index.js +0 -42
  157. package/dist/index.js.map +0 -1
  158. package/dist/index.test.d.ts +0 -1
  159. package/dist/judicialProcess.d.ts +0 -126
  160. package/dist/judicialProcess.js +0 -190
  161. package/dist/judicialProcess.js.map +0 -1
  162. package/dist/judicialProcess.test.d.ts +0 -1
  163. package/dist/nup17.d.ts +0 -102
  164. package/dist/nup17.js +0 -155
  165. package/dist/nup17.js.map +0 -1
  166. package/dist/nup17.test.d.ts +0 -1
  167. package/dist/pisPasep.d.ts +0 -81
  168. package/dist/pisPasep.js +0 -126
  169. package/dist/pisPasep.js.map +0 -1
  170. package/dist/pisPasep.test.d.ts +0 -1
  171. package/dist/postalCode.d.ts +0 -83
  172. package/dist/postalCode.js +0 -136
  173. package/dist/postalCode.js.map +0 -1
  174. package/dist/postalCode.test.d.ts +0 -1
  175. package/dist/renavam.d.ts +0 -75
  176. package/dist/renavam.js +0 -122
  177. package/dist/renavam.js.map +0 -1
  178. package/dist/renavam.test.d.ts +0 -1
  179. package/dist/tituloEleitor.d.ts +0 -93
  180. package/dist/tituloEleitor.js +0 -143
  181. package/dist/tituloEleitor.js.map +0 -1
  182. package/dist/tituloEleitor.test.d.ts +0 -1
  183. package/dist/utils-applyMask.test.d.ts +0 -1
  184. package/dist/utils-checkRepeatedSequence.test.d.ts +0 -1
  185. package/dist/utils-clearValue.test.d.ts +0 -1
  186. package/dist/utils-fakeNumber.test.d.ts +0 -1
  187. package/dist/utils-insertAtPosition.test.d.ts +0 -1
  188. package/dist/utils-invalidListGenerator.test.d.ts +0 -1
  189. package/dist/utils-randomLetter.test.d.ts +0 -1
  190. package/dist/utils-removeFromPosition.test.d.ts +0 -1
  191. package/dist/utils-sumElementsByMultipliers.test.d.ts +0 -1
  192. package/dist/utils-sumToDV.test.d.ts +0 -1
  193. package/dist/utils.d.ts +0 -131
  194. package/dist/utils.js +0 -190
  195. package/dist/utils.js.map +0 -1
  196. package/eslint.config.js +0 -82
  197. package/jest.config.js +0 -11
@@ -0,0 +1,127 @@
1
+ import { CNPJ } from '../src/cnpj';
2
+ import * as _cnpj from '../src/cnpj';
3
+
4
+ describe('CNPJ', () => {
5
+ describe('constructor', () => {
6
+ test.each([
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
+ '99360938000180',
14
+ '23693443000100',
15
+ '32432147000147',
16
+ '91951438000100',
17
+ ])('deve estar definido', (input) => {
18
+ const cnpj = new CNPJ(input);
19
+ expect(cnpj).toBeDefined();
20
+ expect(cnpj.value).toMatch(/^\d{14}$/);
21
+ });
22
+
23
+ test.each([
24
+ // Com máscara
25
+ '11.222.333/0001-82', // dv invlido
26
+ '73.797.980/0001-72', // dv invlido
27
+ '06.946.762/0001-62', // dv invlido
28
+ '96.051.576/0001-52', // dv invlido
29
+ '55.585.709/0001-92', // dv invlido
30
+ '993609380001804', // numero a mais
31
+ '2369344300010', // numero a menos
32
+ '', // vazio
33
+ undefined, // undefined
34
+ null, // null
35
+ ])('deve lançar um erro', (input) => {
36
+ expect(() => new CNPJ(input as any)).toThrow();
37
+ });
38
+ });
39
+
40
+ describe('checksum', () => {
41
+ test.each([
42
+ { num: '112223330001', expected: '81' },
43
+ { num: '993609380001', expected: '80' },
44
+ { num: '324321470001', expected: '47' },
45
+ { num: '132496630001', expected: '96' },
46
+ { num: '752827070001', expected: '37' },
47
+ { num: '265066480001', expected: '28' },
48
+ { num: '708032680001', expected: '47' },
49
+ { num: '195255840001', expected: '47' },
50
+ { num: '888634370001', expected: '08' },
51
+ { num: '060757490001', expected: '84' },
52
+ { num: '554120850001', expected: '07' },
53
+ { num: '754097240001', expected: '92' },
54
+ ])('dv() - Verificando se o DV gerado está correto', (item) => {
55
+ const calcDv = CNPJ.checksum(item.num);
56
+ expect(calcDv).toBe(item.expected);
57
+ expect(typeof calcDv).toBe('string');
58
+ });
59
+
60
+ test.each(['11222333000', '1122233300011', ''])(
61
+ 'deve lançar erro de dv',
62
+ (item) => {
63
+ expect(() => CNPJ.checksum(item)).toThrow();
64
+ }
65
+ );
66
+ });
67
+
68
+ describe('mask', () => {
69
+ test.each([
70
+ { value: '11222333000181', expected: '11.222.333/0001-81' },
71
+ { value: '99360938000180', expected: '99.360.938/0001-80' },
72
+ { value: '32432147000147', expected: '32.432.147/0001-47' },
73
+ { value: '00432147000150', expected: '00.432.147/0001-50' },
74
+ ])('máscara correta em %s', (item) => {
75
+ const masked = new CNPJ(item.value).mask();
76
+ expect(masked).toBe(item.expected);
77
+ expect(masked).toHaveLength(18);
78
+ });
79
+ });
80
+
81
+ describe('fake', () => {
82
+ test.each([...Array(5)])('fakes devem estar definidos', () => {
83
+ const cnpj = CNPJ.fake();
84
+ expect(cnpj).toBeDefined();
85
+ expect(cnpj).toBeInstanceOf(CNPJ);
86
+ });
87
+
88
+ test.each([...Array(5)])(
89
+ 'fakes alfanuméricos devem estar definidos',
90
+ () => {
91
+ const cnpj = CNPJ.fake({ alphanumeric: true });
92
+ expect(cnpj).toBeDefined();
93
+ expect(cnpj).toBeInstanceOf(CNPJ);
94
+ }
95
+ );
96
+ });
97
+
98
+ describe('CNPJ alfanumérico', () => {
99
+ test.each(['A3.170.7X3/0001-36', 'A31707X3000136'])(
100
+ 'isValid() - checa se o cnpj alfanumérico %s é válido',
101
+ (cnpj) => {
102
+ expect(new CNPJ(cnpj)).toBeDefined()
103
+ }
104
+ );
105
+
106
+ test.each([
107
+ { num: 'A12223330001', expected: '50' },
108
+ { num: 'B12223330001', expected: '03' },
109
+ { num: 'C12223330001', expected: '67' },
110
+ { num: 'D12223330001', expected: '10' },
111
+ { num: 'E12223330001', expected: '74' },
112
+ ])('Deve gerar um DV correto a partir de %s ', (item) => {
113
+ const calcDv = CNPJ.checksum(item.num);
114
+ expect(calcDv).toBe(item.expected);
115
+ expect(typeof calcDv).toBe('string');
116
+ });
117
+
118
+
119
+ test.each(['A1222333000', 'B122233300011', ''])(
120
+ '%s deve lançar erro de dv',
121
+ (item) => {
122
+ expect(() => CNPJ.checksum(item)).toThrow();
123
+ }
124
+ );
125
+
126
+ });
127
+ });
@@ -0,0 +1,76 @@
1
+ import { CPF } from '../src/cpf';
2
+
3
+ describe('CPF', () => {
4
+ describe('constructor', () => {
5
+ test.each([
6
+ '133.782.710-00',
7
+ '400.448.260-79',
8
+ '08796742020',
9
+ '74172316085',
10
+ '15886489070',
11
+ '90889477086',
12
+ ])('deve estar definido', (input) => {
13
+ expect(new CPF(input)).toBeDefined();
14
+ });
15
+
16
+ test.each([
17
+ '287.967.420-20',
18
+ '333.782.710-00',
19
+ '200.448.260-79',
20
+ '24172316085',
21
+ '25886489070',
22
+ '20889477086',
23
+ '11111111111', // repetido
24
+ '', // vazio
25
+ '012345678900', // caracteres a mais
26
+ '12345678', // caracteres a menos
27
+ null,
28
+ undefined,
29
+ ])('deve lançar erro', (input) => {
30
+ expect(() => new CPF(input as any)).toThrow();
31
+ });
32
+ });
33
+
34
+ describe('mask', () => {
35
+ test.each([
36
+ { num: '74172316085', expected: '741.723.160-85' },
37
+ { num: '15886489070', expected: '158.864.890-70' },
38
+ { num: '90889477086', expected: '908.894.770-86' },
39
+ { num: '00889477000', expected: '008.894.770-00' },
40
+ ])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
41
+ const masked = new CPF(item.num).mask();
42
+
43
+ expect(masked).toBe(item.expected);
44
+ expect(masked).toHaveLength(14);
45
+ });
46
+ });
47
+
48
+ describe('fake', () => {
49
+ test.each([...Array(5)])('fake() - Gera fakes sem máscara', () => {
50
+ const cpf = CPF.fake();
51
+ expect(cpf).toBeDefined();
52
+ });
53
+ });
54
+
55
+ describe('checksum', () => {
56
+ test.each([
57
+ { num: '741723160', expected: '85' },
58
+ { num: '158864890', expected: '70' },
59
+ { num: '908894770', expected: '86' },
60
+ ])('dv() - Verificando se o DV gerado está correto', (item) => {
61
+ const calcDv = CPF.checksum(item.num);
62
+
63
+ expect(calcDv).toBe(item.expected);
64
+ expect(typeof calcDv).toBe('string');
65
+ });
66
+
67
+
68
+ test.each(['74172316', '1588648900', ''])(
69
+ '%s deve lançar erro de dv',
70
+ (item) => {
71
+ expect(() => CPF.checksum(item)).toThrow();
72
+ }
73
+ );
74
+
75
+ });
76
+ });
@@ -0,0 +1,112 @@
1
+ import {
2
+ isCarPlate,
3
+ isCNH,
4
+ isCNPJ,
5
+ isCPF,
6
+ isJudicialProcess,
7
+ isNUP17,
8
+ isPhone,
9
+ isPIS,
10
+ isPixCopyPaste,
11
+ isPixKey,
12
+ isPostalTrackCode,
13
+ isRenavam,
14
+ isTituloEleitor,
15
+ } from '../src/main'
16
+
17
+ describe('ValidateBR', () => {
18
+ test('Deve importar isCNH', () => {
19
+ expect(isCNH).toBeDefined()
20
+
21
+ expect(isCNH('69044271146')).toBeTruthy()
22
+ expect(isCNH('69044271146')).toBeTruthy()
23
+ })
24
+
25
+ test('Deve importar isCNPJ', () => {
26
+ expect(isCNPJ).toBeDefined()
27
+
28
+ expect(isCNPJ('32432147000147')).toBeTruthy()
29
+ expect(isCNPJ('32432147000147')).toBeTruthy()
30
+ })
31
+
32
+ test('Deve importar isCPF', () => {
33
+ expect(isCPF).toBeDefined()
34
+
35
+ expect(isCPF('15886489070')).toBeTruthy()
36
+ expect(isCPF('15886489070')).toBeTruthy()
37
+ })
38
+
39
+ test('Deve importar isJudicialProcess', () => {
40
+ expect(isJudicialProcess).toBeDefined()
41
+
42
+ expect(isJudicialProcess('08002732820164058400')).toBeTruthy()
43
+ expect(isJudicialProcess('08002732820164058400')).toBeTruthy()
44
+ })
45
+
46
+ test('Deve importar isNUP17', () => {
47
+ expect(isNUP17).toBeDefined()
48
+
49
+ expect(isNUP17('23037001462202165')).toBeTruthy()
50
+ expect(isNUP17('23037001462202165')).toBeTruthy()
51
+ })
52
+
53
+ test('Deve importar isPIS', () => {
54
+ expect(isPIS).toBeDefined()
55
+
56
+ expect(isPIS('23795126955')).toBeTruthy()
57
+ expect(isPIS('23795126955')).toBeTruthy()
58
+ })
59
+
60
+ test('Deve importar isPostalTrackCode', () => {
61
+ expect(isPostalTrackCode).toBeDefined()
62
+
63
+ expect(isPostalTrackCode('PN718252423BR')).toBeTruthy()
64
+ expect(isPostalTrackCode('PN718252423BR')).toBeTruthy()
65
+ })
66
+
67
+ test('Deve importar isRenavam', () => {
68
+ expect(isRenavam).toBeDefined()
69
+
70
+ expect(isRenavam('80499688374')).toBeTruthy()
71
+ expect(isRenavam('80499688374')).toBeTruthy()
72
+ })
73
+
74
+ test('Deve importar isTituloEleitor', () => {
75
+ expect(isTituloEleitor).toBeDefined()
76
+
77
+ expect(isTituloEleitor('153036161686')).toBeTruthy()
78
+ expect(isTituloEleitor('153036161686')).toBeTruthy()
79
+ })
80
+
81
+ test('Deve importar isCarPlate', () => {
82
+ expect(isCarPlate).toBeDefined()
83
+
84
+ expect(isCarPlate('AAA-1A34')).toBeTruthy()
85
+ expect(isCarPlate('AAA-1A34')).toBeTruthy()
86
+ })
87
+
88
+ test('Deve importar isPhone', () => {
89
+ expect(isPhone).toBeDefined()
90
+
91
+ expect(isPhone('+5584987654321')).toBeTruthy()
92
+ expect(isPhone('+558433311454')).toBeTruthy()
93
+ })
94
+ test('Deve importar isPixKey', () => {
95
+ expect(isPixKey).toBeDefined()
96
+
97
+ expect(isPixKey('klawdyo@gmail.com')).toBeTruthy()
98
+ expect(isPixKey('+5584987654321')).toBeTruthy()
99
+ expect(isPixKey('+558433311454')).toBeTruthy()
100
+ expect(isPixKey('01234567-0123-4567-8900-000000000000')).toBeTruthy()
101
+ expect(isPixKey('99360938000180')).toBeTruthy()
102
+ expect(isPixKey('74172316085')).toBeTruthy()
103
+ })
104
+ test('Deve importar isPixCopyPaste', () => {
105
+ expect(isPixCopyPaste).toBeDefined()
106
+ const pixStone = `00020101021226820014br.gov.bcb.pix2560pix.stone.com.br/pix/v2/b411f5c8-e97f-4a18-af0e-fc66491748d7520400005303986540510.005802BR5925DIOGO DA SILVA SANTOS LTD6014RIO DE JANEIRO622905251e3afd7926983f8ffe086cdc16304FF60`;
107
+ const pixManual = `00020126550014BR.GOV.BCB.PIX0123alexandrepato@gmail.com0206almoco5204000053039865406100.005802BR5914Alexandre Pato6009Ipanguacu61085950800062490511PIXJS76657250300017BR.GOV.BCB.BRCODE01051.0.0630455CF`;
108
+
109
+ expect(isPixCopyPaste(pixStone)).toBeTruthy()
110
+ expect(isPixCopyPaste(pixManual)).toBeTruthy()
111
+ })
112
+ })
@@ -0,0 +1,131 @@
1
+ import { JudicialProcess } from '../src/judicial-process';
2
+
3
+ describe('JudicialProcess', () => {
4
+ describe('constructor', () => {
5
+ test.each([
6
+ '6105283-83.2009.8.13.0024',
7
+ '00110060720168200100',
8
+ '08002785520134058400',
9
+ '08002732820164058400',
10
+ ])('deve estar definido', (input) => {
11
+ // console.log(new JudicialProcess(input));
12
+
13
+ expect(new JudicialProcess(input)).toBeDefined();
14
+ });
15
+
16
+ test.each([
17
+ '0110060720168200100',
18
+ '61052838320098130023',
19
+ '00110060720168200102',
20
+ '08002785520134058401',
21
+ '08002732820164058406',
22
+ '08002732820160058400', // Órgão judiciário igual a 0
23
+ '', // vazio
24
+ '008002732820160058400', // caracteres a mais
25
+ '8002732820160058400', // caracteres a menos
26
+ null,
27
+ undefined,
28
+ ])('deve lançar erro %s', (input) => {
29
+ expect(() => new JudicialProcess(input as any)).toThrow();
30
+ });
31
+ });
32
+
33
+ describe('mask', () => {
34
+ test.each([
35
+ { num: '00020802520125150049', expected: '0002080-25.2012.5.15.0049' },
36
+ { num: '61052838320098130024', expected: '6105283-83.2009.8.13.0024' },
37
+ { num: '00110060720168200100', expected: '0011006-07.2016.8.20.0100' },
38
+ { num: '08002785520134058400', expected: '0800278-55.2013.4.05.8400' },
39
+ { num: '08002732820164058400', expected: '0800273-28.2016.4.05.8400' },
40
+ ])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
41
+ const masked = new JudicialProcess(item.num).mask();
42
+
43
+ expect(masked).toBe(item.expected);
44
+ expect(masked).toMatch(/^\d{7}-\d{2}.\d{4}.\d.\d{2}.\d{4}$/);
45
+ });
46
+ });
47
+
48
+ describe('fake()', () => {
49
+ test.each([...Array(5)])('Deve gerar um fake válido', () => {
50
+ const result = JudicialProcess.fake();
51
+ expect(result).toBeDefined();
52
+ });
53
+
54
+ test.each([...Array(5)])(
55
+ 'Deve gerar um fake válido com o órgão definido',
56
+ () => {
57
+ const result = JudicialProcess.fake({ court: '3' });
58
+ expect(result).toBeDefined();
59
+ expect(result.court).toBe('3');
60
+ }
61
+ );
62
+
63
+ test.each([...Array(5)])(
64
+ 'Deve gerar um fake válido com o tribunal definido',
65
+ () => {
66
+ const result = JudicialProcess.fake({ subCourt: '13' });
67
+ expect(result).toBeDefined();
68
+ expect(result.subCourt).toBe('13');
69
+ }
70
+ );
71
+
72
+ test.each([...Array(5)])(
73
+ 'Deve gerar um fake válido com o ano definido',
74
+ () => {
75
+ const result = JudicialProcess.fake({ year: '2024' });
76
+ expect(result).toBeDefined();
77
+ expect(result.year).toBe('2024');
78
+ }
79
+ );
80
+
81
+ test.each([...Array(5)])(
82
+ 'Deve gerar um fake válido com a unidade de origem definida',
83
+ () => {
84
+ const result = JudicialProcess.fake({ origin: '1313' });
85
+ expect(result).toBeDefined();
86
+ expect(result.origin).toBe('1313');
87
+ }
88
+ );
89
+
90
+ test.each([
91
+ { court: '0' },
92
+ { court: '11' },
93
+ { subCourt: '1' },
94
+ { subCourt: '00' },
95
+ { subCourt: '111' },
96
+ { year: '111' },
97
+ { year: '11111' },
98
+ { origin: '0000' },
99
+ { origin: '111' },
100
+ { origin: '11111' },
101
+ ])(
102
+ 'Deve lançar erro quando tenta criar fake com valores pré-definidos inválidos %s',
103
+ (input) => {
104
+ expect(() => JudicialProcess.fake(input)).toThrow();
105
+ }
106
+ );
107
+ });
108
+
109
+ describe('checksum', () => {
110
+ test.each([
111
+ { num: '000208020125150049', expected: '25' },
112
+ { num: '610528320098130024', expected: '83' },
113
+ { num: '001100620168200100', expected: '07' },
114
+ { num: '080027820134058400', expected: '55' },
115
+ { num: '080027320164058400', expected: '28' },
116
+ ])('dv() - Verificando se o DV gerado está correto', (item) => {
117
+ const calcDv = JudicialProcess.checksum(item.num);
118
+
119
+ expect(calcDv).toBe(item.expected);
120
+ expect(typeof calcDv).toBe('string');
121
+ });
122
+
123
+
124
+ test.each(['0002080201251500499', '00020802012515004', ''])(
125
+ 'deve lançar erro de dv',
126
+ (item) => {
127
+ expect(() => JudicialProcess.checksum(item)).toThrow();
128
+ }
129
+ );
130
+ });
131
+ });
@@ -0,0 +1,79 @@
1
+ import { NUP17 } from '../src/nup17';
2
+
3
+ describe('NUP17', () => {
4
+ describe('constructor', () => {
5
+ test.each([
6
+ // Masked
7
+ '23037.001380/2021-11',
8
+ '23037.001434/2021-48',
9
+ '23037.001321/2021-42',
10
+ // String
11
+ '23037001462202165',
12
+ '23037001537202116',
13
+ '23037001086202117',
14
+ ])('%s deve ser definido', (input) => {
15
+ expect(new NUP17(input)).toBeDefined();
16
+ });
17
+
18
+ test.each([
19
+ '23037001380202112',
20
+ '23037001434202142',
21
+ '23037001462202162',
22
+ '23037001537202112',
23
+ '', // vazio
24
+ '023037001537202112', // caracteres a mais
25
+ '3037001537202112', // caracteres a menos
26
+ null,
27
+ undefined,
28
+ ])('%s deve lançar erro', (input) => {
29
+ expect(() => new NUP17(input as any)).toThrow();
30
+ });
31
+ });
32
+
33
+ describe('mask', () => {
34
+ test.each([
35
+ { num: '23037001380202111', expected: '23037.001380/2021-11' },
36
+ { num: '23037001434202148', expected: '23037.001434/2021-48' },
37
+ { num: '23037001321202142', expected: '23037.001321/2021-42' },
38
+ { num: '23037001462202165', expected: '23037.001462/2021-65' },
39
+ { num: '23037001537202116', expected: '23037.001537/2021-16' },
40
+ { num: '23037001086202117', expected: '23037.001086/2021-17' },
41
+ ])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
42
+ const masked = new NUP17(item.num).mask();
43
+
44
+ expect(masked).toBe(item.expected);
45
+ expect(masked).toMatch(/^\d{5}\.\d{6}\/\d{4}-\d{2}$/);
46
+ });
47
+ });
48
+
49
+ describe('fake', () => {
50
+ test.each([...Array(5)])('Deve gerar fake válido', () => {
51
+ const result = NUP17.fake();
52
+ expect(result).toBeDefined();
53
+ });
54
+ });
55
+
56
+ describe('checksum', () => {
57
+ test.each([
58
+ { num: '230370013802021', expected: '11' },
59
+ { num: '230370014342021', expected: '48' },
60
+ { num: '230370013212021', expected: '42' },
61
+ { num: '230370014622021', expected: '65' },
62
+ { num: '230370015372021', expected: '16' },
63
+ { num: '230370010862021', expected: '17' },
64
+ ])('dv() - Verificando se o DV gerado está correto', (item) => {
65
+ const calcDv = NUP17.checksum(item.num);
66
+
67
+ expect(calcDv).toBe(item.expected);
68
+ expect(typeof calcDv).toBe('string');
69
+ });
70
+
71
+
72
+ test.each(['23037001462202', '2303700146220211', ''])(
73
+ 'deve lançar erro de dv',
74
+ (item) => {
75
+ expect(() => NUP17.checksum(item)).toThrow();
76
+ }
77
+ );
78
+ });
79
+ });
@@ -0,0 +1,75 @@
1
+ import { Phone } from '../src/phone';
2
+
3
+ const cellPhones = ['+5584999580685', '+55 84 9 9958 0685', '+55 (84) 9 9958-0685', '+55 (84) 99958-0685', '84 99958-0685'];
4
+ const phones = ['+558433311454', '84 3331-1454', '84 3331 1454', '(84) 3331 1454', '84-3331-1454'];
5
+
6
+ describe('Phone', () => {
7
+ describe('constructor', () => {
8
+ test.each(cellPhones)('Celular %s deve estar definido', (value) => {
9
+ const obj = new Phone(value);
10
+ expect(obj.value).toBe('+5584999580685');
11
+ expect(obj.ddi).toBe('+55');
12
+ expect(obj.ddd).toBe('84');
13
+ expect(obj.phone).toBe('999580685');
14
+ expect(obj.isMobile).toBeTruthy();
15
+ });
16
+
17
+ test.each(phones)('Telefone fixo %s deve estar definido', (value) => {
18
+ const obj = new Phone(value);
19
+ expect(obj.value).toBe('+558433311454');
20
+ expect(obj.ddi).toBe('+55');
21
+ expect(obj.ddd).toBe('84');
22
+ expect(obj.phone).toBe('33311454');
23
+ expect(obj.isMobile).toBeFalsy;
24
+ });
25
+ });
26
+
27
+ describe('fake', () => {
28
+ test.each([...Array(5)])('Cria um fake', () => {
29
+ const fake = Phone.fake();
30
+ expect(fake).toBeDefined();
31
+ });
32
+
33
+ test.each([...Array(5)])('Cria um fake com DDD 11', () => {
34
+ const fake = Phone.fake({ ddd: '11' });
35
+ expect(fake).toBeDefined();
36
+ expect(fake.ddd).toBe('11');
37
+ });
38
+
39
+ test.each([...Array(5)])('Cria um fake com isMobile=true', () => {
40
+ const fake = Phone.fake({ isMobile: true });
41
+ expect(fake).toBeDefined();
42
+ expect(fake.isMobile).toBeTruthy()
43
+ expect(fake.phone.length).toBe(9)
44
+ });
45
+
46
+ test.each([...Array(5)])('Cria um fake com isLandline=true', () => {
47
+ const fake = Phone.fake({ isLandline: true });
48
+ expect(fake).toBeDefined();
49
+ expect(fake.isMobile).toBeFalsy()
50
+ expect(fake.phone.length).toBe(8)
51
+ });
52
+ });
53
+
54
+ describe('mask', () => {
55
+ test.each(cellPhones)('Máscara de celular sem país', (input) => {
56
+ const phone = new Phone(input);
57
+ expect(phone.mask({ withCountry: false })).toBe('84 999580685');
58
+ });
59
+
60
+ test.each(cellPhones)('Máscara de celular com país', (input) => {
61
+ const phone = new Phone(input);
62
+ expect(phone.mask({ withCountry: true })).toBe('+55 84 999580685');
63
+ });
64
+
65
+ test.each(phones)('Máscara de telefone fixo sem país', (input) => {
66
+ const phone = new Phone(input);
67
+ expect(phone.mask({ withCountry: false })).toBe('84 33311454');
68
+ });
69
+
70
+ test.each(phones)('Máscara de telefone fixo com país', (input) => {
71
+ const phone = new Phone(input);
72
+ expect(phone.mask({ withCountry: true })).toBe('+55 84 33311454');
73
+ });
74
+ });
75
+ });
@@ -0,0 +1,73 @@
1
+ import { PIS } from '../src/pis-pasep';
2
+
3
+ describe('PIS', () => {
4
+ describe('constructor', () => {
5
+ test.each([
6
+ '71282677380',
7
+ '23795126955',
8
+ '50012973803',
9
+ '27890141144',
10
+ '268.27649.96-0',
11
+ '613.01862.91-7',
12
+ ])('deve estar definido', (input) => {
13
+ expect(new PIS(input)).toBeDefined();
14
+ });
15
+
16
+ test.each([
17
+ '712.82677.38-2',
18
+ '237.95126.95-4',
19
+ '500.12973.80-1',
20
+ '278.90141.14-9',
21
+ '268.27649.96-2',
22
+ '613.01862.91-4',
23
+ '111.11111.11-1',
24
+ '', // vazio
25
+ '0613.01862.91-4', // caracteres a mais
26
+ '13.01862.91-4', // caracteres a menos
27
+ null,
28
+ undefined,
29
+ ])('deve lançar erro', (input) => {
30
+ expect(() => new PIS(input as any)).toThrow();
31
+ });
32
+ });
33
+
34
+ describe('mask', () => {
35
+ test.each([
36
+ { num: '71282677380', expected: '712.82677.38-0' },
37
+ { num: '23795126955', expected: '237.95126.95-5' },
38
+ { num: '50012973803', expected: '500.12973.80-3' },
39
+ ])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
40
+ const masked = new PIS(item.num).mask();
41
+
42
+ expect(masked).toBe(item.expected);
43
+ expect(masked).toMatch(/^\d{3}.\d{5}.\d{2}-\d{1}$/);
44
+ });
45
+ });
46
+
47
+ describe('fake', () => {
48
+ test.each([...Array(5)])('deve gerar um fake válido', () => {
49
+ const result = PIS.fake();
50
+ expect(result).toBeDefined();
51
+ });
52
+ });
53
+
54
+ describe('checksum', () => {
55
+ test.each([
56
+ { num: '7128267738', expected: '0' },
57
+ { num: '2379512695', expected: '5' },
58
+ { num: '5001297380', expected: '3' },
59
+ ])('%s deve gerar dv correto', (item) => {
60
+ const calcDv = PIS.checksum(item.num);
61
+
62
+ expect(calcDv).toBe(item.expected);
63
+ expect(typeof calcDv).toBe('string');
64
+ });
65
+
66
+ test.each(['712826778', '71282677381', ''])(
67
+ '%s deve lançar erro de dv',
68
+ (item) => {
69
+ expect(() => PIS.checksum(item)).toThrow();
70
+ }
71
+ );
72
+ });
73
+ });