validation-br 1.5.2 → 1.6.0
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.
- package/dist/test/cnh.test.js +116 -0
- package/dist/test/cnh.test.js.map +1 -0
- package/dist/test/cnpj.test.js +181 -0
- package/dist/test/cnpj.test.js.map +1 -0
- package/dist/test/cpf.test.js +136 -0
- package/dist/test/cpf.test.js.map +1 -0
- package/dist/test/index.test.js +83 -0
- package/dist/test/index.test.js.map +1 -0
- package/dist/test/judicialProcess.test.js +124 -0
- package/dist/test/judicialProcess.test.js.map +1 -0
- package/dist/test/nup17.test.js +133 -0
- package/dist/test/nup17.test.js.map +1 -0
- package/dist/test/pisPasep.test.js +135 -0
- package/dist/test/pisPasep.test.js.map +1 -0
- package/dist/test/postalCode.test.js +123 -0
- package/dist/test/postalCode.test.js.map +1 -0
- package/dist/test/renavam.test.js +91 -0
- package/dist/test/renavam.test.js.map +1 -0
- package/dist/test/tituloEleitor.test.js +118 -0
- package/dist/test/tituloEleitor.test.js.map +1 -0
- package/dist/test/utils-applyMask.test.js +15 -0
- package/dist/test/utils-applyMask.test.js.map +1 -0
- package/dist/test/utils-checkRepeatedSequence.test.js +18 -0
- package/dist/test/utils-checkRepeatedSequence.test.js.map +1 -0
- package/dist/test/utils-clearValue.test.js +59 -0
- package/dist/test/utils-clearValue.test.js.map +1 -0
- package/dist/test/utils-fakeNumber.test.js +24 -0
- package/dist/test/utils-fakeNumber.test.js.map +1 -0
- package/dist/test/utils-insertAtPosition.test.js +16 -0
- package/dist/test/utils-insertAtPosition.test.js.map +1 -0
- package/dist/test/utils-randomLetter.test.js +11 -0
- package/dist/test/utils-randomLetter.test.js.map +1 -0
- package/dist/test/utils-removeFromPosition.test.js +12 -0
- package/dist/test/utils-removeFromPosition.test.js.map +1 -0
- package/dist/test/utils-sumElementsByMultipliers.test.js +23 -0
- package/dist/test/utils-sumElementsByMultipliers.test.js.map +1 -0
- package/dist/test/utils-sumToDV.test.d.ts +1 -0
- package/dist/test/utils-sumToDV.test.js +14 -0
- package/dist/test/utils-sumToDV.test.js.map +1 -0
- package/jest.config.js +1 -1
- package/package.json +2 -2
- package/readme.md +216 -184
- package/test/cnh.test.ts +113 -0
- package/test/cnpj.test.ts +179 -0
- package/test/cpf.test.ts +124 -0
- package/test/index.test.ts +85 -0
- package/test/judicialProcess.test.ts +120 -0
- package/test/nup17.test.ts +127 -0
- package/test/pisPasep.test.ts +126 -0
- package/test/postalCode.test.ts +114 -0
- package/test/renavam.test.ts +77 -0
- package/test/tituloEleitor.test.ts +110 -0
- package/test/utils-applyMask.test.ts +13 -0
- package/test/utils-checkRepeatedSequence.test.ts +17 -0
- package/test/utils-clearValue.test.ts +69 -0
- package/test/utils-fakeNumber.test.ts +28 -0
- package/test/utils-insertAtPosition.test.ts +15 -0
- package/test/utils-randomLetter.test.ts +9 -0
- package/test/utils-removeFromPosition.test.ts +10 -0
- package/test/utils-sumElementsByMultipliers.test.ts +24 -0
- package/test/utils-sumToDV.test.ts +12 -0
- package/tsconfig.json +3 -3
- package/.github/workflows/test.yml +0 -39
- package/dist/cnh.d.ts +0 -91
- package/dist/cnh.js +0 -139
- package/dist/cnh.js.map +0 -1
- package/dist/cnpj.d.ts +0 -114
- package/dist/cnpj.js +0 -180
- package/dist/cnpj.js.map +0 -1
- package/dist/cpf.d.ts +0 -99
- package/dist/cpf.js +0 -147
- package/dist/cpf.js.map +0 -1
- package/dist/data/ValidationBRError.d.ts +0 -6
- package/dist/data/ValidationBRError.js +0 -10
- package/dist/data/ValidationBRError.js.map +0 -1
- package/dist/index.d.ts +0 -21
- package/dist/index.js +0 -42
- package/dist/index.js.map +0 -1
- package/dist/judicialProcess.d.ts +0 -126
- package/dist/judicialProcess.js +0 -190
- package/dist/judicialProcess.js.map +0 -1
- package/dist/nup17.d.ts +0 -102
- package/dist/nup17.js +0 -155
- package/dist/nup17.js.map +0 -1
- package/dist/pisPasep.d.ts +0 -81
- package/dist/pisPasep.js +0 -126
- package/dist/pisPasep.js.map +0 -1
- package/dist/postalCode.d.ts +0 -83
- package/dist/postalCode.js +0 -136
- package/dist/postalCode.js.map +0 -1
- package/dist/renavam.d.ts +0 -75
- package/dist/renavam.js +0 -122
- package/dist/renavam.js.map +0 -1
- package/dist/tituloEleitor.d.ts +0 -93
- package/dist/tituloEleitor.js +0 -143
- package/dist/tituloEleitor.js.map +0 -1
- package/dist/utils-invalidListGenerator.test.d.ts +0 -1
- package/dist/utils-randomLetter.test.d.ts +0 -1
- package/dist/utils.d.ts +0 -131
- package/dist/utils.js +0 -190
- package/dist/utils.js.map +0 -1
- /package/dist/{cnh.test.d.ts → test/cnh.test.d.ts} +0 -0
- /package/dist/{cnpj.test.d.ts → test/cnpj.test.d.ts} +0 -0
- /package/dist/{cpf.test.d.ts → test/cpf.test.d.ts} +0 -0
- /package/dist/{index.test.d.ts → test/index.test.d.ts} +0 -0
- /package/dist/{judicialProcess.test.d.ts → test/judicialProcess.test.d.ts} +0 -0
- /package/dist/{nup17.test.d.ts → test/nup17.test.d.ts} +0 -0
- /package/dist/{pisPasep.test.d.ts → test/pisPasep.test.d.ts} +0 -0
- /package/dist/{postalCode.test.d.ts → test/postalCode.test.d.ts} +0 -0
- /package/dist/{renavam.test.d.ts → test/renavam.test.d.ts} +0 -0
- /package/dist/{tituloEleitor.test.d.ts → test/tituloEleitor.test.d.ts} +0 -0
- /package/dist/{utils-applyMask.test.d.ts → test/utils-applyMask.test.d.ts} +0 -0
- /package/dist/{utils-checkRepeatedSequence.test.d.ts → test/utils-checkRepeatedSequence.test.d.ts} +0 -0
- /package/dist/{utils-clearValue.test.d.ts → test/utils-clearValue.test.d.ts} +0 -0
- /package/dist/{utils-fakeNumber.test.d.ts → test/utils-fakeNumber.test.d.ts} +0 -0
- /package/dist/{utils-insertAtPosition.test.d.ts → test/utils-insertAtPosition.test.d.ts} +0 -0
- /package/dist/{utils-removeFromPosition.test.d.ts → test/utils-randomLetter.test.d.ts} +0 -0
- /package/dist/{utils-sumElementsByMultipliers.test.d.ts → test/utils-removeFromPosition.test.d.ts} +0 -0
- /package/dist/{utils-sumToDV.test.d.ts → test/utils-sumElementsByMultipliers.test.d.ts} +0 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import isNUP17, { dv, fake, mask, normalize, validate, validateOrFail } from '../src/nup17';
|
|
2
|
+
import * as _nup17 from '../src/nup17';
|
|
3
|
+
|
|
4
|
+
describe('NUP17', () => {
|
|
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
|
+
])('isNUP17() - Números válidos', (item) => {
|
|
15
|
+
|
|
16
|
+
expect(isNUP17(item)).toBeTruthy();
|
|
17
|
+
expect(_nup17.validate(item)).toBeTruthy();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test.each([
|
|
21
|
+
// Masked
|
|
22
|
+
'23037.001380/2021-11',
|
|
23
|
+
'23037.001434/2021-48',
|
|
24
|
+
'23037.001321/2021-42',
|
|
25
|
+
// String
|
|
26
|
+
'23037001462202165',
|
|
27
|
+
'23037001537202116',
|
|
28
|
+
'23037001086202117',
|
|
29
|
+
])('validate() - Números válidos', (item) => {
|
|
30
|
+
|
|
31
|
+
expect(validate(item)).toBeTruthy();
|
|
32
|
+
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test.each([
|
|
36
|
+
// Masked
|
|
37
|
+
'23037001380202112',
|
|
38
|
+
'23037001434202142',
|
|
39
|
+
'23037001462202162',
|
|
40
|
+
'23037001537202112',
|
|
41
|
+
])('validate() - Números inválidos', (item) => {
|
|
42
|
+
|
|
43
|
+
expect(validate(item)).toBeFalsy();
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test.each([
|
|
47
|
+
// Masked
|
|
48
|
+
'23037001380202112',
|
|
49
|
+
'23037001434202142',
|
|
50
|
+
'23037001462202162',
|
|
51
|
+
'23037001537202112',
|
|
52
|
+
])('validateOrFail() - Números inválidos', (item) => {
|
|
53
|
+
|
|
54
|
+
expect(() => validateOrFail(item)).toThrow();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test.each([
|
|
58
|
+
// Números válidos com 1 caractere a mais no final
|
|
59
|
+
'230370014622021650',
|
|
60
|
+
'230370015372021160',
|
|
61
|
+
'230370010862021170',
|
|
62
|
+
])('validateOrFail() - Números válidos com caracteres adicionais', (item) => {
|
|
63
|
+
expect(() => validateOrFail(item)).toThrow();
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
test('Parâmetro não informado', () => {
|
|
67
|
+
expect(isNUP17('')).toBeFalsy();
|
|
68
|
+
expect(validate('')).toBeFalsy();
|
|
69
|
+
expect(() => validateOrFail('')).toThrow();
|
|
70
|
+
expect(() => dv('')).toThrow();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
test.each([...Array(5)])('fake() - Gera fakes sem máscara', () => {
|
|
74
|
+
const nup17 = fake();
|
|
75
|
+
expect(validate(nup17)).toBeTruthy();
|
|
76
|
+
expect(nup17).toHaveLength(17);
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
test.each([...Array(5)])('fake() - Gera fakes com máscara', () => {
|
|
80
|
+
const nup17 = fake(true);
|
|
81
|
+
expect(validate(nup17)).toBeTruthy();
|
|
82
|
+
expect(nup17).toHaveLength(20);
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
test.each([
|
|
86
|
+
{ num: '23037.001380/2021', expected: '11' },
|
|
87
|
+
{ num: '23037.001434/2021', expected: '48' },
|
|
88
|
+
{ num: '23037.001321/2021', expected: '42' },
|
|
89
|
+
{ num: '230370014622021', expected: '65' },
|
|
90
|
+
{ num: '230370015372021', expected: '16' },
|
|
91
|
+
{ num: '230370010862021', expected: '17' },
|
|
92
|
+
])('dv() - Verificando se o DV gerado está correto', (item) => {
|
|
93
|
+
const calcDv = dv(item.num);
|
|
94
|
+
|
|
95
|
+
expect(calcDv).toBe(item.expected);
|
|
96
|
+
expect(typeof calcDv).toBe('string');
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
test.each([
|
|
100
|
+
{ value: '23037001380202111', expected: '23037.001380/2021-11' },
|
|
101
|
+
{ value: '23037001434202148', expected: '23037.001434/2021-48' },
|
|
102
|
+
{ value: '23037001321202142', expected: '23037.001321/2021-42' },
|
|
103
|
+
{ value: '23037001462202165', expected: '23037.001462/2021-65' },
|
|
104
|
+
{ value: '23037001537202116', expected: '23037.001537/2021-16' },
|
|
105
|
+
{ value: '23037001086202117', expected: '23037.001086/2021-17' },
|
|
106
|
+
])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
|
|
107
|
+
const masked = mask(item.value);
|
|
108
|
+
|
|
109
|
+
expect(masked).toBe(item.expected);
|
|
110
|
+
expect(masked).toHaveLength(20);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
test.each([
|
|
114
|
+
{ value: '23037.001380/2021-11', expected: '23037001380202111', },
|
|
115
|
+
{ value: '23037.001434/2021-48', expected: '23037001434202148', },
|
|
116
|
+
{ value: '23037.001321/2021-42', expected: '23037001321202142', },
|
|
117
|
+
{ value: '23037.001462/2021-65', expected: '23037001462202165', },
|
|
118
|
+
{ value: '23037.001537/2021-16', expected: '23037001537202116', },
|
|
119
|
+
{ value: '23037.001086/2021-17', expected: '23037001086202117', },
|
|
120
|
+
])('normalize() - Deve remover a máscara corretamente', (item) => {
|
|
121
|
+
|
|
122
|
+
const normalized = normalize(item.value);
|
|
123
|
+
|
|
124
|
+
expect(normalized).toBe(item.expected);
|
|
125
|
+
expect(normalized).toHaveLength(17);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import isPIS, { dv, fake, mask, normalize, validate, validateOrFail } from '../src/pisPasep';
|
|
2
|
+
import * as _pisPasep from '../src/pisPasep';
|
|
3
|
+
|
|
4
|
+
describe('PIS', () => {
|
|
5
|
+
test.each([
|
|
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
|
+
])('isPIS() - Números válidos', (item) => {
|
|
16
|
+
expect(isPIS(item)).toBeTruthy();
|
|
17
|
+
expect(_pisPasep.validate(item)).toBeTruthy();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
test.each([
|
|
21
|
+
// string
|
|
22
|
+
'71282677380',
|
|
23
|
+
'23795126955',
|
|
24
|
+
// integer
|
|
25
|
+
50012973803,
|
|
26
|
+
27890141144,
|
|
27
|
+
// masked
|
|
28
|
+
'268.27649.96-0',
|
|
29
|
+
'613.01862.91-7',
|
|
30
|
+
])('validate() - Números válidos', (item) => {
|
|
31
|
+
|
|
32
|
+
expect(validate(item)).toBeTruthy();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
test.each([
|
|
36
|
+
// string
|
|
37
|
+
'712826773809',
|
|
38
|
+
'237951269559',
|
|
39
|
+
// integer
|
|
40
|
+
500129738039,
|
|
41
|
+
278901411449,
|
|
42
|
+
// masked
|
|
43
|
+
'268.27649.96-09',
|
|
44
|
+
'613.01862.91-79',
|
|
45
|
+
])('validate() - Números válidos com caracteres adicionais', (item) => {
|
|
46
|
+
|
|
47
|
+
expect(validate(item)).toBeFalsy();
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test.each([
|
|
51
|
+
'712.82677.38-2',
|
|
52
|
+
'237.95126.95-4',
|
|
53
|
+
'500.12973.80-1',
|
|
54
|
+
'278.90141.14-9',
|
|
55
|
+
'268.27649.96-2',
|
|
56
|
+
'613.01862.91-4',
|
|
57
|
+
'111.11111.11-1',
|
|
58
|
+
])('validate() - Números inválidos', (item) => {
|
|
59
|
+
expect(validate(item)).toBeFalsy();
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
test.each([
|
|
63
|
+
'712.82677.38-2',
|
|
64
|
+
'237.95126.95-4',
|
|
65
|
+
'500.12973.80-1',
|
|
66
|
+
'278.90141.14-9',
|
|
67
|
+
'268.27649.96-2',
|
|
68
|
+
'613.01862.91-4',
|
|
69
|
+
'111.11111.11-1',
|
|
70
|
+
])('validateOrFail() - Números inválidos', (item) => {
|
|
71
|
+
expect(() => validateOrFail(item)).toThrow();
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
test('Parâmetro não informado', () => {
|
|
75
|
+
expect(isPIS('')).toBeFalsy();
|
|
76
|
+
expect(validate('')).toBeFalsy();
|
|
77
|
+
expect(() => validateOrFail('')).toThrow();
|
|
78
|
+
expect(() => dv('')).toThrow();
|
|
79
|
+
});
|
|
80
|
+
|
|
81
|
+
test.each([...Array(5)])('fake() - Gera fakes sem máscara', () => {
|
|
82
|
+
const pis = fake();
|
|
83
|
+
expect(validate(pis)).toBeTruthy();
|
|
84
|
+
expect(pis).toHaveLength(11);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test.each([...Array(5)])('fake() - Gera fakes com máscara', () => {
|
|
88
|
+
const pis = fake(true);
|
|
89
|
+
expect(validate(pis)).toBeTruthy();
|
|
90
|
+
expect(pis).toHaveLength(14);
|
|
91
|
+
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
test.each([
|
|
95
|
+
{ value: '7128267738', expected: '0' },
|
|
96
|
+
{ value: 2379512695, expected: '5' },
|
|
97
|
+
{ value: '5001297380', expected: '3' },
|
|
98
|
+
])('dv() - Verificando se o DV gerado está correto', (item) => {
|
|
99
|
+
const calcDv = dv(item.value);
|
|
100
|
+
expect(calcDv).toBe(item.expected);
|
|
101
|
+
expect(typeof calcDv).toBe('string');
|
|
102
|
+
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
test.each([
|
|
106
|
+
{ value: '71282677380', expected: '712.82677.38-0' },
|
|
107
|
+
{ value: 23795126955, expected: '237.95126.95-5' },
|
|
108
|
+
{ value: '50012973803', expected: '500.12973.80-3' },
|
|
109
|
+
])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
|
|
110
|
+
const masked = mask(item.value);
|
|
111
|
+
|
|
112
|
+
expect(masked).toBe(item.expected);
|
|
113
|
+
expect(masked).toHaveLength(14);
|
|
114
|
+
});
|
|
115
|
+
|
|
116
|
+
test.each([
|
|
117
|
+
{ value: '712.82677.38-0', expected: '71282677380', },
|
|
118
|
+
{ value: '237.95126.95-5', expected: '23795126955', },
|
|
119
|
+
{ value: '500.12973.80-3', expected: '50012973803', },
|
|
120
|
+
])('normalize() - Deve remover a máscara corretamente', (item) => {
|
|
121
|
+
const normalized = normalize(item.value);
|
|
122
|
+
|
|
123
|
+
expect(normalized).toBe(item.expected);
|
|
124
|
+
expect(normalized).toHaveLength(11);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import isPostalCode, { dv, fake, normalize, mask, validate, validateOrFail } from '../src/postalCode';
|
|
2
|
+
import * as _postalCode from '../src/postalCode';
|
|
3
|
+
|
|
4
|
+
describe('PostalCode', () => {
|
|
5
|
+
test.each([
|
|
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
|
+
])('isPostalCode() - Números válidos', (item) => {
|
|
20
|
+
|
|
21
|
+
expect(isPostalCode(item)).toBeTruthy();
|
|
22
|
+
expect(_postalCode.validate(item)).toBeTruthy();
|
|
23
|
+
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
test.each([
|
|
27
|
+
'PN718252423BR',
|
|
28
|
+
'PO925539762BR',
|
|
29
|
+
'JT194690698BR',
|
|
30
|
+
'SV143851674BR',
|
|
31
|
+
'RG727348650CN',
|
|
32
|
+
'RY747622885CN',
|
|
33
|
+
'RY728187035CN',
|
|
34
|
+
'RH940629235CN',
|
|
35
|
+
'RY686586175CN',
|
|
36
|
+
'RY648001205CN',
|
|
37
|
+
'UJ776469464CN',
|
|
38
|
+
'LZ667841882CN',
|
|
39
|
+
'RS737783818NL',
|
|
40
|
+
])('validate() - Números válidos', (item) => {
|
|
41
|
+
|
|
42
|
+
expect(validate(item)).toBeTruthy();
|
|
43
|
+
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
test.each([
|
|
47
|
+
'PO925524762BR',
|
|
48
|
+
'JT194624698BR',
|
|
49
|
+
'SV143824674BR',
|
|
50
|
+
'RG727324650CN',
|
|
51
|
+
'RY747624885CN',
|
|
52
|
+
'RY728114035CN',
|
|
53
|
+
])('validate() - Números inválidos', (item) => {
|
|
54
|
+
expect(validate(item)).toBeFalsy();
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
test.each([
|
|
58
|
+
'PO925524762BR',
|
|
59
|
+
'JT194624698BR',
|
|
60
|
+
'SV143824674BR',
|
|
61
|
+
'RG727324650CN',
|
|
62
|
+
'RY747624885CN',
|
|
63
|
+
'RY728114035CN',
|
|
64
|
+
])('validateOrFail() - Números inválidos', (item) => {
|
|
65
|
+
expect(() => validateOrFail(item)).toThrow();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
test('Parâmetro não informado', () => {
|
|
69
|
+
expect(isPostalCode('')).toBeFalsy();
|
|
70
|
+
expect(validate('')).toBeFalsy();
|
|
71
|
+
expect(() => validateOrFail('')).toThrow();
|
|
72
|
+
expect(() => dv('')).toThrow();
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
test.each([...Array(5)])('fake() - Gera fakes corretamente', () => {
|
|
76
|
+
const postalCode = fake();
|
|
77
|
+
|
|
78
|
+
expect(validate(postalCode)).toBeTruthy();
|
|
79
|
+
expect(postalCode).toHaveLength(13);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test.each([
|
|
83
|
+
{ value: 'PN718252423BR', expected: '3' },
|
|
84
|
+
{ value: 'PO925539762BR', expected: '2' },
|
|
85
|
+
{ value: 'JT194690698BR', expected: '8' },
|
|
86
|
+
])('dv() - Verificando se o DV gerado está correto', (item) => {
|
|
87
|
+
const calcDv = dv(item.value);
|
|
88
|
+
|
|
89
|
+
expect(calcDv).toBe(item.expected);
|
|
90
|
+
expect(typeof calcDv).toBe('string');
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
test.each([
|
|
94
|
+
{ value: 'pn718252423br', expected: 'PN718252423BR' },
|
|
95
|
+
{ value: 'po925539762br', expected: 'PO925539762BR' },
|
|
96
|
+
{ value: 'jt194690698br', expected: 'JT194690698BR' },
|
|
97
|
+
])('normalize() - Deve normalizar o valor inicial corretamente', (item) => {
|
|
98
|
+
const normalized = normalize(item.value);
|
|
99
|
+
|
|
100
|
+
expect(normalized).toBe(item.expected);
|
|
101
|
+
expect(normalized).toHaveLength(13);
|
|
102
|
+
});
|
|
103
|
+
|
|
104
|
+
test.each([
|
|
105
|
+
{ value: 'pn718252423br', expected: 'PN718252423BR' },
|
|
106
|
+
{ value: 'po925539762br', expected: 'PO925539762BR' },
|
|
107
|
+
{ value: 'jt194690698br', expected: 'JT194690698BR' },
|
|
108
|
+
])('mask() - Deve normalizar o valor inicial corretamente', (item) => {
|
|
109
|
+
const masked = mask(item.value);
|
|
110
|
+
|
|
111
|
+
expect(masked).toBe(item.expected);
|
|
112
|
+
expect(masked).toHaveLength(13);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import isRenavam, { dv, fake, mask, normalize, validate, validateOrFail } from '../src/renavam';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
describe('Renavam', () => {
|
|
5
|
+
test.each([
|
|
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
|
+
])('isRenavam() - %s deve ser um renavam válido', (renavam) => {
|
|
16
|
+
expect(isRenavam(renavam)).toBeTruthy();
|
|
17
|
+
expect(validate(renavam)).toBeTruthy();
|
|
18
|
+
expect(validateOrFail(renavam)).toBeTruthy();
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
test.each(['19525227703', '33940229599', '03607226105', '64090226160', '80499228374'])(
|
|
22
|
+
'validate() - Números inválidos',
|
|
23
|
+
(renavam) => {
|
|
24
|
+
expect(validate(renavam)).toBeFalsy();
|
|
25
|
+
expect(() => validateOrFail(renavam)).toThrow();
|
|
26
|
+
},
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
test('Parâmetro não informado', () => {
|
|
30
|
+
expect(isRenavam('')).toBeFalsy();
|
|
31
|
+
expect(validate('')).toBeFalsy();
|
|
32
|
+
expect(() => validateOrFail('')).toThrow();
|
|
33
|
+
expect(() => dv('')).toThrow();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
test.each([...Array(5)])('fake() - Gera fakes sem máscara', () => {
|
|
37
|
+
const renavam = fake();
|
|
38
|
+
expect(validate(renavam)).toBeTruthy();
|
|
39
|
+
expect(renavam).toHaveLength(11);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
test.each([...Array(5)])('fake() - Gera fakes com máscara', () => {
|
|
43
|
+
const renavam = fake(true);
|
|
44
|
+
expect(validate(renavam)).toBeTruthy();
|
|
45
|
+
expect(renavam).toHaveLength(12);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
test.each([
|
|
49
|
+
{ value: '1952519770', expected: '3' },
|
|
50
|
+
{ value: 952519770, expected: '6' },
|
|
51
|
+
{ value: 52519770, expected: '2' },
|
|
52
|
+
])('renavam.dv() - Verificando se o DV gerado está correto', (item) => {
|
|
53
|
+
const calcDv = dv(item.value);
|
|
54
|
+
expect(calcDv).toBe(item.expected);
|
|
55
|
+
expect(typeof calcDv).toBe('string');
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
test.each([
|
|
59
|
+
{ value: '19525197703', expected: '1952519770-3' },
|
|
60
|
+
{ value: 9525197703, expected: '0952519770-3' },
|
|
61
|
+
{ value: 525197703, expected: '0052519770-3' },
|
|
62
|
+
])('mask() - Testando se a máscara foi gerada corretamente', (item) => {
|
|
63
|
+
const masked = mask(item.value);
|
|
64
|
+
expect(masked).toBe(item.expected);
|
|
65
|
+
expect(masked).toHaveLength(12);
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
test.each([
|
|
69
|
+
{ value: '1952519770-3', expected: '19525197703', },
|
|
70
|
+
{ value: '0952519770-3', expected: '09525197703', },
|
|
71
|
+
{ value: '0052519770-3', expected: '00525197703', },
|
|
72
|
+
])('normalize() - Deve remover a máscara corretamente', (item) => {
|
|
73
|
+
const normalized = normalize(item.value);
|
|
74
|
+
expect(normalized).toBe(item.expected);
|
|
75
|
+
expect(normalized).toHaveLength(11);
|
|
76
|
+
});
|
|
77
|
+
});
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import isTituloEleitor, { dv, fake, mask, normalize, validate, validateOrFail } from '../src/tituloEleitor';
|
|
2
|
+
|
|
3
|
+
describe('TituloEleitor', () => {
|
|
4
|
+
test.each([
|
|
5
|
+
// masked
|
|
6
|
+
'1023.8501.0671',
|
|
7
|
+
'8365 7137 1619',
|
|
8
|
+
// string
|
|
9
|
+
'153036161686',
|
|
10
|
+
'525028881694',
|
|
11
|
+
// integer
|
|
12
|
+
13132331643,
|
|
13
|
+
1122221333,
|
|
14
|
+
])('isTituloEleitor() - Números válidos', (item) => {
|
|
15
|
+
expect(isTituloEleitor(item)).toBeTruthy();
|
|
16
|
+
expect(validate(item)).toBeTruthy();
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test('Deve rejeitar quando a UF for maior que 28', () => {
|
|
20
|
+
const titulo = '1122 3344 2992';
|
|
21
|
+
expect(validate(titulo)).toBeFalsy();
|
|
22
|
+
// expect(() => validateOrFail(titulo)).toThrow()
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
test.each([
|
|
26
|
+
'836531371619',
|
|
27
|
+
'743620641660',
|
|
28
|
+
'153016161686',
|
|
29
|
+
'525078881694',
|
|
30
|
+
'026367681660',
|
|
31
|
+
'558647441635',
|
|
32
|
+
'222222222222',
|
|
33
|
+
])('validate() - Números inválidos', (item) => {
|
|
34
|
+
expect(validate(item)).toBeFalsy();
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
test.each([
|
|
38
|
+
'836531371619',
|
|
39
|
+
'743620641660',
|
|
40
|
+
'153016161686',
|
|
41
|
+
'525078881694',
|
|
42
|
+
'026367681660',
|
|
43
|
+
'558647441635',
|
|
44
|
+
'222222222222',
|
|
45
|
+
])('validateOrFail() - Números inválidos', (item) => {
|
|
46
|
+
expect(() => validateOrFail(item)).toThrow();
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
test('Parâmetro não informado', () => {
|
|
50
|
+
expect(isTituloEleitor('')).toBeFalsy();
|
|
51
|
+
expect(validate('')).toBeFalsy();
|
|
52
|
+
expect(() => validateOrFail('')).toThrow();
|
|
53
|
+
expect(() => dv('')).toThrow();
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
test.each([...Array(5)])('fake() - Gera fakes sem máscara', () => {
|
|
57
|
+
const tituloEleitor = fake();
|
|
58
|
+
|
|
59
|
+
expect(validate(tituloEleitor)).toBeTruthy();
|
|
60
|
+
expect(tituloEleitor).toHaveLength(12);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test.each([...Array(5)])('fake() - Gera fakes com máscara', () => {
|
|
64
|
+
const tituloEleitor = fake(true);
|
|
65
|
+
|
|
66
|
+
expect(validate(tituloEleitor)).toBeTruthy();
|
|
67
|
+
expect(tituloEleitor).toHaveLength(14);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test.each([
|
|
71
|
+
{ value: '1023850106', expected: '71' },
|
|
72
|
+
{ value: '8365713716', expected: '19' },
|
|
73
|
+
{ value: '7436506416', expected: '60' },
|
|
74
|
+
{ value: '0011222213', expected: '33' },
|
|
75
|
+
])('dv() - Verificando se o DV gerado está correto', (item) => {
|
|
76
|
+
const calcDv = dv(item.value);
|
|
77
|
+
|
|
78
|
+
expect(calcDv).toBe(item.expected);
|
|
79
|
+
expect(typeof calcDv).toBe('string');
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
test.each([
|
|
83
|
+
{ value: '102385010671', expected: '1023.8501.0671' },
|
|
84
|
+
{ value: '836571371619', expected: '8365.7137.1619' },
|
|
85
|
+
{ value: '743650641660', expected: '7436.5064.1660' },
|
|
86
|
+
{ value: 11122223360, expected: '0111.2222.3360' },
|
|
87
|
+
{ value: 1122223336, expected: '0011.2222.3336' },
|
|
88
|
+
]
|
|
89
|
+
|
|
90
|
+
)('mask() - Testando se a máscara foi gerada corretamente', (item) => {
|
|
91
|
+
const masked = mask(item.value);
|
|
92
|
+
|
|
93
|
+
expect(masked).toBe(item.expected);
|
|
94
|
+
expect(masked).toHaveLength(14);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
test.each([
|
|
98
|
+
{ value: '1023.8501.0671', expected: '102385010671', },
|
|
99
|
+
{ value: '8365.7137.1619', expected: '836571371619', },
|
|
100
|
+
{ value: '7436.5064.1660', expected: '743650641660', },
|
|
101
|
+
{ value: '0111.2222.3360', expected: '011122223360', },
|
|
102
|
+
{ value: '0011.2222.3336', expected: '001122223336', },
|
|
103
|
+
]
|
|
104
|
+
)('normalize() - Deve remover a máscara corretamente', (item) => {
|
|
105
|
+
const normalized = normalize(item.value);
|
|
106
|
+
|
|
107
|
+
expect(normalized).toBe(item.expected);
|
|
108
|
+
expect(normalized).toHaveLength(12);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { applyMask } from '../src/utils';
|
|
2
|
+
|
|
3
|
+
describe('applyMask()', () => {
|
|
4
|
+
test.each([
|
|
5
|
+
{ value: '123456', mask: '00000-0', expected: '12345-6' },
|
|
6
|
+
{ value: '12345', mask: '00000-0', expected: '01234-5' },
|
|
7
|
+
{ value: '123456789', mask: '00000-0', expected: '12345-6' },
|
|
8
|
+
{ value: 123456789, mask: '00000-0', expected: '12345-6' },
|
|
9
|
+
])('Máscara deve ser aplicada com o valor e tamanho correto', (item) => {
|
|
10
|
+
expect(item.expected.length).toBe(item.mask.length);
|
|
11
|
+
expect(applyMask(item.value, item.mask)).toBe(item.expected);
|
|
12
|
+
});
|
|
13
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { checkRepeatedSequence } from "../src/utils";
|
|
2
|
+
|
|
3
|
+
test.each([
|
|
4
|
+
'11111111',
|
|
5
|
+
'1111',
|
|
6
|
+
])('testa se %s tem todos os valores iguais', (value) => {
|
|
7
|
+
expect(checkRepeatedSequence(value)).toBeTruthy();
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
test.each([
|
|
11
|
+
'12345678',
|
|
12
|
+
'11111112',
|
|
13
|
+
'1234',
|
|
14
|
+
'2111',
|
|
15
|
+
])('testa se %s não tem todos os valores iguais', (value) => {
|
|
16
|
+
expect(checkRepeatedSequence(value)).toBeFalsy();
|
|
17
|
+
});
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { clearValue } from '../src/utils';
|
|
2
|
+
|
|
3
|
+
describe('clearValue()', () => {
|
|
4
|
+
test.each([
|
|
5
|
+
{ value: 1234567890, size: 10, expected: '1234567890' },
|
|
6
|
+
{ value: '1234567890', size: 10, expected: '1234567890' },
|
|
7
|
+
{ value: '12.345.678-90', size: 10, expected: '1234567890' },
|
|
8
|
+
{ value: '1234 5678 9012', size: 10, expected: '123456789012' },
|
|
9
|
+
]
|
|
10
|
+
)('Deve limpar o valor - Strings do Mesmo tamanho', (item) => {
|
|
11
|
+
expect(clearValue(item.value, item.size)).toBe(item.expected);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
test.each([
|
|
15
|
+
{ value: 1234567890123, size: null, expected: '1234567890123' },
|
|
16
|
+
{ value: '4567890', size: null, expected: '4567890' },
|
|
17
|
+
{ value: '345.678-90', size: null, expected: '34567890' },
|
|
18
|
+
])('Deve limpar os caracteres não numéricos sem verificar o tamanho da string', (item) => {
|
|
19
|
+
expect(clearValue(item.value, item.size)).toBe(item.expected);
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
test.each([
|
|
23
|
+
{ value: 1234, size: 10, expected: '0000001234' },
|
|
24
|
+
{ value: '1234', size: 10, expected: '0000001234' },
|
|
25
|
+
{ value: '123-4', size: 10, expected: '0000001234' },
|
|
26
|
+
])('Deve limpar o valor os caracteres não numéricos e completar com zeros à esquerda', (item) => {
|
|
27
|
+
expect(clearValue(item.value, item.size, { fillZerosAtLeft: true })).toBe(item.expected);
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Não completa com zeros
|
|
31
|
+
expect(clearValue(1234, 6, { fillZerosAtLeft: false })).toBe('1234');
|
|
32
|
+
expect(clearValue('1234', 6, { fillZerosAtLeft: false })).toBe('1234');
|
|
33
|
+
|
|
34
|
+
test.each([
|
|
35
|
+
{ value: 123456789, size: 4, expected: '1234' },
|
|
36
|
+
{ value: '1234567890', size: 4, expected: '1234' },
|
|
37
|
+
{ value: '12.345.678-90', size: 4, expected: '1234' },
|
|
38
|
+
])('Deve limpar o valor os caracteres não numéricos e remover os caracteres que passarem de size', (item) => {
|
|
39
|
+
expect(clearValue(item.value, item.size, { trimAtRight: true })).toBe(item.expected);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Não corta à direita
|
|
43
|
+
expect(clearValue(12345678, 6, { trimAtRight: false })).toBe('12345678');
|
|
44
|
+
expect(clearValue('12345678', 6, { trimAtRight: false })).toBe('12345678');
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
test('Deve retornar erro se receber um valor vazio', () => {
|
|
49
|
+
expect(clearValue('1112', 4, { rejectEmpty: true })).toBe('1112');
|
|
50
|
+
expect(() => clearValue('', null, { rejectEmpty: true })).toThrow();
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
test('Deve retornar erro se receber uma sequência de números iguais', () => {
|
|
54
|
+
expect(clearValue('1112', 4, { rejectEqualSequence: true })).toBe('1112');
|
|
55
|
+
expect(() => clearValue('1111', 4, { rejectEqualSequence: true })).toThrow();
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
test('Deve retornar erro se receber um valor com mais caracteres que o máximo', () => {
|
|
59
|
+
expect(clearValue('1234', 4, { rejectHigherLength: true })).toBe('1234');
|
|
60
|
+
expect(() => clearValue('12345', 4, { rejectHigherLength: true })).toThrow();
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
test('Deve retornar o mesmo valor inicial', () => {
|
|
64
|
+
expect(clearValue(1234, 4)).toBe('1234');
|
|
65
|
+
expect(clearValue('1234', 4)).toBe('1234');
|
|
66
|
+
expect(clearValue(1234, 4, {})).toBe('1234');
|
|
67
|
+
expect(clearValue('1234', 4, {})).toBe('1234');
|
|
68
|
+
});
|
|
69
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { fakeNumber } from '../src/utils';
|
|
2
|
+
|
|
3
|
+
describe('fakeNumber()', () => {
|
|
4
|
+
test.each([...Array(10)])('forceLength = true', () => {
|
|
5
|
+
const num = fakeNumber(4, true);
|
|
6
|
+
|
|
7
|
+
expect(num).toHaveLength(4);
|
|
8
|
+
expect(typeof num).toBe('string');
|
|
9
|
+
expect(num).toMatch(/^[\d]+$/);
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
test.each([...Array(10)])('forceLength = false', () => {
|
|
13
|
+
const num = fakeNumber(4);
|
|
14
|
+
|
|
15
|
+
expect(+num).toBeLessThanOrEqual(9999);
|
|
16
|
+
expect(+num).toBeGreaterThanOrEqual(0);
|
|
17
|
+
expect(typeof num).toBe('string');
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
test.each([...Array(10)])('isAlpha = true', () => {
|
|
22
|
+
const num = fakeNumber(4, true, true);
|
|
23
|
+
|
|
24
|
+
expect(num).toHaveLength(4);
|
|
25
|
+
expect(typeof num).toBe('string');
|
|
26
|
+
expect(num).toMatch(/^[0-9A-Z]+$/);
|
|
27
|
+
});
|
|
28
|
+
});
|