1
1
import cnpjIsValid from "../../src/cnpjValidator" ;
2
+ import type { ValidateFunctions } from "../../src/types" ;
2
3
3
4
describe ( "cnpjIsValid function" , ( ) => {
4
5
test ( "should validate a valid CNPJ" , ( ) => {
5
- const result = cnpjIsValid ( "72.501.263/0001-40" ) ;
6
+ const result : ValidateFunctions = cnpjIsValid ( "72.501.263/0001-40" ) ;
6
7
expect ( result . isValid ) . toBe ( false ) ;
7
8
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
8
9
} ) ;
9
10
10
11
test ( "should invalidate an invalid CNPJ" , ( ) => {
11
- const result = cnpjIsValid ( "12.345.678/0001-91" ) ;
12
+ const result : ValidateFunctions = cnpjIsValid ( "12.345.678/0001-91" ) ;
12
13
expect ( result . isValid ) . toBe ( false ) ;
13
14
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
14
15
} ) ;
15
16
16
17
test ( "should invalidate a CNPJ with non-digit characters" , ( ) => {
17
- const result = cnpjIsValid ( "72.501.263/0001-4A" ) ;
18
+ const result : ValidateFunctions = cnpjIsValid ( "72.501.263/0001-4A" ) ;
18
19
expect ( result . isValid ) . toBe ( false ) ;
19
20
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
20
21
} ) ;
21
22
22
23
test ( "should return false if cnpj length is not 14 or 18" , ( ) => {
23
- const result = cnpjIsValid ( "123456789012" ) ;
24
+ const result : ValidateFunctions = cnpjIsValid ( "123456789012" ) ;
24
25
expect ( result . isValid ) . toBe ( false ) ;
25
26
expect ( result . errorMsg ) . toBe ( "CNPJ must have 14 numerical digits" ) ;
26
27
} ) ;
27
28
28
29
test ( "should return false if cnpj has valid length but invalid verifier digits" , ( ) => {
29
- const result = cnpjIsValid ( "12.345.678/0001-00" ) ;
30
+ const result : ValidateFunctions = cnpjIsValid ( "12.345.678/0001-00" ) ;
30
31
expect ( result . isValid ) . toBe ( false ) ;
31
32
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
32
33
} ) ;
33
34
34
35
test ( "should invalidate an empty CNPJ" , ( ) => {
35
- const result = cnpjIsValid ( "" ) ;
36
+ const result : ValidateFunctions = cnpjIsValid ( "" ) ;
36
37
expect ( result . isValid ) . toBe ( false ) ;
37
38
expect ( result . errorMsg ) . toBe ( "CNPJ invalid" ) ;
38
39
} ) ;
39
40
40
41
test ( "should throw an error if input is not a string" , ( ) => {
41
42
expect ( ( ) => {
42
- cnpjIsValid ( 12345678901234 as any ) ;
43
+ cnpjIsValid ( 12345678901234 as unknown as string ) ;
43
44
} ) . toThrow ( "The input should be a string." ) ;
44
45
} ) ;
45
46
46
47
test ( "should throw an error if errorMsg is not an array" , ( ) => {
47
48
expect ( ( ) => {
48
- cnpjIsValid ( "72.501.263/0001-40" , "error message" as any ) ;
49
+ cnpjIsValid ( "72.501.263/0001-40" , "error message" as unknown as string [ ] ) ;
49
50
} ) . toThrow ( "Must be an Array" ) ;
50
51
} ) ;
51
52
52
53
test ( "should throw an error if errorMsg contains non-string values" , ( ) => {
53
54
expect ( ( ) => {
54
- cnpjIsValid ( "72.501.263/0001-40" , [ 123 , "error message" ] as any ) ;
55
+ cnpjIsValid ( "72.501.263/0001-40" , [
56
+ 123 ,
57
+ "error message" ,
58
+ ] as unknown as string [ ] ) ;
55
59
} ) . toThrow (
56
60
"All values within the array must be strings or null/undefined." ,
57
61
) ;
58
62
} ) ;
59
63
60
64
test ( "should return custom error messages" , ( ) => {
61
- const result = cnpjIsValid ( "12.345.678/0001-91" , [
65
+ const result : ValidateFunctions = cnpjIsValid ( "12.345.678/0001-91" , [
62
66
"Custom invalid message" ,
63
67
"Custom length message" ,
64
68
"Custom not valid message" ,
@@ -69,30 +73,33 @@ describe("cnpjIsValid function", () => {
69
73
} ) ;
70
74
71
75
test ( "should return false when all digits are repeated" , ( ) => {
72
- const result = cnpjIsValid ( "11.111.111/1111-11" ) ;
76
+ const result : ValidateFunctions = cnpjIsValid ( "11.111.111/1111-11" ) ;
73
77
expect ( result . isValid ) . toBe ( false ) ;
74
78
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
75
79
} ) ;
76
80
77
81
test ( "should return false when all digits are the same" , ( ) => {
78
- const result = cnpjIsValid ( "11.111.111/1111-11" ) ;
82
+ const result : ValidateFunctions = cnpjIsValid ( "11.111.111/1111-11" ) ;
79
83
expect ( result . isValid ) . toBe ( false ) ;
80
84
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
81
85
} ) ;
82
86
83
87
test ( "should return default error messages when errorMsg['etc', null] is passed" , ( ) => {
84
- const result = cnpjIsValid ( "12.345.678/0001-91" , [ "etc" , null ] ) ;
88
+ const result : ValidateFunctions = cnpjIsValid ( "12.345.678/0001-91" , [
89
+ "etc" ,
90
+ null ,
91
+ ] ) ;
85
92
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
86
93
} ) ;
87
94
88
95
test ( "should return default error messages when errorMsg is null" , ( ) => {
89
- const result = cnpjIsValid ( "12.345.678/0001-91" , null ) ;
96
+ const result : ValidateFunctions = cnpjIsValid ( "12.345.678/0001-91" , null ) ;
90
97
expect ( result . errorMsg ) . toBe ( "CNPJ is not valid" ) ;
91
98
} ) ;
92
99
93
100
test ( "should return true for a valid CNPJ where the first verifier is 0" , ( ) => {
94
- const cnpj = "69.228.768.0159-00" ;
95
- const result = cnpjIsValid ( cnpj ) ;
101
+ const cnpj : string = "69.228.768.0159-00" ;
102
+ const result : ValidateFunctions = cnpjIsValid ( cnpj ) ;
96
103
expect ( result . isValid ) . toBe ( true ) ;
97
104
expect ( result . errorMsg ) . toBeNull ( ) ;
98
105
} ) ;
0 commit comments