validation-br 1.0.0-b → 1.0.0-c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/.eslintcache +1 -0
  2. package/package.json +64 -2
  3. package/dist/cnh.test.js +0 -117
  4. package/dist/cnh.test.js.map +0 -1
  5. package/dist/cnpj.test.js +0 -141
  6. package/dist/cnpj.test.js.map +0 -1
  7. package/dist/cpf.test.js +0 -130
  8. package/dist/cpf.test.js.map +0 -1
  9. package/dist/index.test.js +0 -33
  10. package/dist/index.test.js.map +0 -1
  11. package/dist/judicialProcess.test.js +0 -123
  12. package/dist/judicialProcess.test.js.map +0 -1
  13. package/dist/pisPasep.test.js +0 -129
  14. package/dist/pisPasep.test.js.map +0 -1
  15. package/dist/postalCode.test.js +0 -135
  16. package/dist/postalCode.test.js.map +0 -1
  17. package/dist/renavam.test.js +0 -113
  18. package/dist/renavam.test.js.map +0 -1
  19. package/dist/tituloEleitor.test.js +0 -132
  20. package/dist/tituloEleitor.test.js.map +0 -1
  21. package/dist/utils-applyMask.test.js +0 -17
  22. package/dist/utils-applyMask.test.js.map +0 -1
  23. package/dist/utils-clearValue.test.js +0 -50
  24. package/dist/utils-clearValue.test.js.map +0 -1
  25. package/dist/utils-fakeNumber.test.js +0 -17
  26. package/dist/utils-fakeNumber.test.js.map +0 -1
  27. package/dist/utils-insertAtPosition.test.js +0 -16
  28. package/dist/utils-insertAtPosition.test.js.map +0 -1
  29. package/dist/utils-invalidListGenerator.test.js +0 -23
  30. package/dist/utils-invalidListGenerator.test.js.map +0 -1
  31. package/dist/utils-removeFromPosition.test.js +0 -16
  32. package/dist/utils-removeFromPosition.test.js.map +0 -1
  33. package/dist/utils-sumElementsByMultipliers.test.js +0 -32
  34. package/dist/utils-sumElementsByMultipliers.test.js.map +0 -1
  35. package/dist/utils-sumToDV.test.js +0 -16
  36. package/dist/utils-sumToDV.test.js.map +0 -1
  37. package/src/cnh.test.ts +0 -114
  38. package/src/cnh.ts +0 -140
  39. package/src/cnpj.test.ts +0 -136
  40. package/src/cnpj.ts +0 -128
  41. package/src/cpf.test.ts +0 -125
  42. package/src/cpf.ts +0 -150
  43. package/src/index.test.ts +0 -35
  44. package/src/index.ts +0 -19
  45. package/src/judicialProcess.test.ts +0 -118
  46. package/src/judicialProcess.ts +0 -167
  47. package/src/pisPasep.test.ts +0 -124
  48. package/src/pisPasep.ts +0 -128
  49. package/src/postalCode.test.ts +0 -132
  50. package/src/postalCode.ts +0 -164
  51. package/src/renavam.test.ts +0 -110
  52. package/src/renavam.ts +0 -122
  53. package/src/tituloEleitor.test.ts +0 -129
  54. package/src/tituloEleitor.ts +0 -146
  55. package/src/utils-applyMask.test.ts +0 -17
  56. package/src/utils-clearValue.test.ts +0 -55
  57. package/src/utils-fakeNumber.test.ts +0 -19
  58. package/src/utils-insertAtPosition.test.ts +0 -15
  59. package/src/utils-invalidListGenerator.test.ts +0 -27
  60. package/src/utils-removeFromPosition.test.ts +0 -15
  61. package/src/utils-sumElementsByMultipliers.test.ts +0 -34
  62. package/src/utils-sumToDV.test.ts +0 -16
  63. package/src/utils.ts +0 -172
package/src/renavam.ts DELETED
@@ -1,122 +0,0 @@
1
- /**
2
- * RENAVAM
3
- * Funções auxiliares para cálculo de máscaras, validação, dígito verificador e criaçãode
4
- * números fake.
5
- *
6
- * @doc
7
- * - O número de RENAVAM deve possuir 11 caracteres
8
- *
9
- * - Os caracteres de 1 a 10 são a numeração documento
10
- *
11
- * - O caractere 11 é o dígito verificador.
12
- *
13
- * 1) Partes do número
14
- * _______________________________________________
15
- * | Número | D V |
16
- * | 2 6 8 2 7 6 4 9 9 6 - 0 |
17
- * |_________________________________________|_____|
18
- *
19
- * 2) Cálculo do DV.
20
- *
21
- * - Soma-se o produto das algarismos 3 a 10 pelos números 3, 2, 9, 8, 7, 6, 5, 4, 3, 2
22
- *
23
- * 2 6 8 2 7 6 4 9 9 6
24
- * x x x x x x x x x x
25
- * 3 2 9 8 7 6 5 4 3 2
26
- * = 6 +12 +72 +16 +49 +12 +20 +36 +27 +12 = 234
27
- *
28
- * - O somatório encontrado é multiplicado por 10 e ao resultado
29
- * é aplicado o cálculo do MOD 11.
30
- *
31
- * ( 234 * 10 ) / 11 tem resto 8. DV = 8. Caso o resto seja maior ou igual a
32
- * 10, DV será 0.
33
- *
34
- *
35
- */
36
-
37
- import {
38
- sumElementsByMultipliers,
39
- clearValue,
40
- fakeNumber,
41
- applyMask,
42
- invalidListGenerator,
43
- } from './utils'
44
-
45
- /**
46
- * dv()
47
- * Calcula o dígito verificador
48
- *
49
- * @param {Number|String} value
50
- * @returns {String}
51
- */
52
- export const dv = (value: string | number): string => {
53
- if (!value) throw new Error('Renavam não informado')
54
-
55
- const renavam = clearValue(value, 10) // só 10 para remover o DV
56
-
57
- const invalidList = invalidListGenerator(10)
58
- if (invalidList.includes(renavam)) {
59
- throw new Error('RENAVAM não pode ser uma sequência de números iguais')
60
- }
61
-
62
- const sum1 = sumElementsByMultipliers(renavam, [3, 2, 9, 8, 7, 6, 5, 4, 3, 2]) * 10
63
- const dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11
64
- return `${dv1}`
65
- }
66
-
67
- /**
68
- * Aplica uma máscara ao número informado
69
- *
70
- * @param {String} value Número de Processo
71
- * @returns {String} Valor com a máscara
72
- */
73
- export const mask = (value: string | number): string => applyMask(value, '0000000000-0')
74
-
75
- /**
76
- * fake()
77
- * Gera um número válido
78
- *
79
- * @returns {String}
80
- */
81
- export const fake = (withMask: boolean = false): string => {
82
- const value = fakeNumber(10, true)
83
-
84
- const renavam = `${value}${dv(value)}`
85
-
86
- if (withMask) return mask(renavam)
87
-
88
- return renavam
89
- }
90
-
91
- /**
92
- * validateOrFail()
93
- * Valida se um número de processo está correto e
94
- * retorna uma exceção se não estiver
95
- *
96
- * @returns {Boolean}
97
- */
98
- export const validateOrFail = (value: string | number): boolean => {
99
- const renavam = clearValue(value, 11)
100
-
101
- if (dv(renavam) !== renavam.substring(10, 11)) {
102
- throw new Error('Dígito verificador inválido')
103
- }
104
-
105
- return true
106
- }
107
-
108
- /**
109
- * validate()
110
- * Valida se um número de processo está correto
111
- *
112
- * @returns {Boolean}
113
- */
114
- export const validate = (value: string | number): boolean => {
115
- try {
116
- return validateOrFail(value)
117
- } catch (error) {
118
- return false
119
- }
120
- }
121
-
122
- export default validate
@@ -1,129 +0,0 @@
1
- import isTituloEleitor, { dv, fake, mask, validate, validateOrFail } from './tituloEleitor'
2
-
3
- describe('TituloEleitor', () => {
4
- test('isTituloEleitor() - Números válidos', () => {
5
- const list = [
6
- // masked
7
- '1023.8501.0671',
8
- '8365.7137.1619',
9
- // string
10
- '153036161686',
11
- '525028881694',
12
- // integer
13
- 11122223360,
14
- 1122223336,
15
- ]
16
-
17
- list.forEach((tituloEleitor) => {
18
- expect(isTituloEleitor(tituloEleitor)).toBeTruthy()
19
- })
20
- })
21
-
22
- test('validate() - Números válidos', () => {
23
- const list = [
24
- // masked
25
- '1023.8501.0671',
26
- '8365.7137.1619',
27
- // string
28
- '153036161686',
29
- '525028881694',
30
- // integer
31
- 11122223360,
32
- 1122223336,
33
- ]
34
-
35
- list.forEach((tituloEleitor) => {
36
- expect(validate(tituloEleitor)).toBeTruthy()
37
- })
38
- })
39
-
40
- test('validate() - Números inválidos', () => {
41
- const list = [
42
- '836531371619',
43
- '743620641660',
44
- '153016161686',
45
- '525078881694',
46
- '026367681660',
47
- '558647441635',
48
- '222222222222',
49
- ]
50
-
51
- list.forEach((tituloEleitor) => {
52
- expect(validate(tituloEleitor)).toBeFalsy()
53
- })
54
- })
55
-
56
- test('validateOrFail() - Números inválidos', () => {
57
- const list = [
58
- '836531371619',
59
- '743620641660',
60
- '153016161686',
61
- '525078881694',
62
- '026367681660',
63
- '558647441635',
64
- '222222222222',
65
- ]
66
-
67
- list.forEach((tituloEleitor) => {
68
- expect(() => validateOrFail(tituloEleitor)).toThrow()
69
- })
70
- })
71
-
72
- test('Parâmetro não informado', () => {
73
- expect(isTituloEleitor('')).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 tituloEleitor = fake()
82
-
83
- expect(validate(tituloEleitor)).toBeTruthy()
84
- expect(tituloEleitor).toHaveLength(12)
85
- }
86
- })
87
-
88
- test('fake() - Gera fakes com máscara', () => {
89
- for (let i = 0; i < 5; i += 1) {
90
- const tituloEleitor = fake(true)
91
-
92
- expect(validate(tituloEleitor)).toBeTruthy()
93
- expect(tituloEleitor).toHaveLength(14)
94
- }
95
- })
96
-
97
- test('dv() - Verificando se o DV gerado está correto', () => {
98
- const list = [
99
- { num: '1023850106', expected: '71' },
100
- { num: '8365713716', expected: '19' },
101
- { num: '7436506416', expected: '60' },
102
- { num: 11222233, expected: '36' },
103
- ]
104
-
105
- list.forEach((item) => {
106
- const calcDv = dv(item.num)
107
-
108
- expect(calcDv).toBe(item.expected)
109
- expect(typeof calcDv).toBe('string')
110
- })
111
- })
112
-
113
- test('mask() - Testando se a máscara foi gerada corretamente', () => {
114
- const list = [
115
- { num: '102385010671', expected: '1023.8501.0671' },
116
- { num: '836571371619', expected: '8365.7137.1619' },
117
- { num: '743650641660', expected: '7436.5064.1660' },
118
- { num: 11122223360, expected: '0111.2222.3360' },
119
- { num: 1122223336, expected: '0011.2222.3336' },
120
- ]
121
-
122
- list.forEach((item) => {
123
- const masked = mask(item.num)
124
-
125
- expect(masked).toBe(item.expected)
126
- expect(masked).toHaveLength(14)
127
- })
128
- })
129
- })
@@ -1,146 +0,0 @@
1
- /**
2
- * isTitulo()
3
- * Calcula se um título eleitoral é válido
4
- *
5
- * @doc
6
- * Título de eleitor deve possuir 12 dígitos.
7
- *
8
- * - Os caracteres 1 a 8 são números sequenciais.
9
- *
10
- * - Os caracteres 9 e 10 representam os estados da federação onde o título
11
- * foi emitido (01 = SP, 02 = MG, 03 = RJ, 04 = RS, 05 = BA, 06 = PR, 07 = CE, 08 = PE,
12
- * 09 = SC, 10 = GO, 11 = MA12 = PB, 13 = PA, 14 = ES, 15 = PI, 16 = RN, 17 = AL,
13
- * 18 = MT, 19 = MS, 20 = DF, 21 = SE, 22 = AM, 23 = RO, 24 = AC, 25 = AP, 26 = RR,
14
- * 27 = TO, 28 = Exterior(ZZ).
15
- *
16
- * - Os caracteres 11 e 12 são dígitos verificadores.
17
- *
18
- * 1) Partes do número
19
- * ------------------------------------------------
20
- * | Número Sequencial | UF | DV |
21
- * 1 0 2 3 8 5 0 1 0 6 7 1
22
- *
23
- * 2) Cálculo do primeiro DV.
24
- *
25
- * - Soma-se o produto das algarismos 1 a 8 pelos números 2, 3, 4, 5, 6, 7, 8 e 9.
26
- *
27
- * 1 0 2 3 8 5 0 1
28
- * x x x x x x x x
29
- * 2 3 4 5 6 7 8 9
30
- * = 2 + 0 + 8 +15 +48 +35 + 0 + 9 = 117
31
- *
32
- * - O somatório encontrado é dividido por 11. O DV1 é o resto da divisão. Se o
33
- * resto for 10, o DV1 é 0.
34
- *
35
- * 2.1) 117 / 11 tem resto igual a 7.
36
- *
37
- * 3) Cálculo do segundo DV
38
- *
39
- * - Soma-se o produto dos algarismos 9 a 11 (relativos aos 2 dígitos da UF e o novo
40
- * DV1 que acabou de ser calculado) e os multiplicam pelos números 7, 8 e 9. Se o
41
- * resto for 10, DV2 será 0.
42
- * 0 6 7
43
- * x x x
44
- * 7 8 9
45
- * = 0 +48 +63 = 111
46
- *
47
- * 3.1) 111 / 11 tem resto igual a 1.
48
- *
49
- * Fonte: http://clubes.obmep.org.br/blog/a-matematica-nos-documentos-titulo-de-eleitor/
50
- *
51
- * @param {String} value Título eleitoral
52
- * @returns {Boolean}
53
- */
54
-
55
- import {
56
- sumElementsByMultipliers,
57
- clearValue,
58
- fakeNumber,
59
- applyMask,
60
- invalidListGenerator,
61
- } from './utils'
62
-
63
- /**
64
- * dv()
65
- * Calcula o dígito verificador
66
- *
67
- * @param {Number|String} value
68
- * @returns {String}
69
- */
70
- export const dv = (value: string | number): string => {
71
- if (!value) throw new Error('CPF não informado')
72
-
73
- const titulo = clearValue(value, 10)
74
-
75
- const invalidList = invalidListGenerator(10)
76
- if (invalidList.includes(titulo)) {
77
- throw new Error('Título não pode ser uma sequência de números iguais')
78
- }
79
-
80
- const sum1 = sumElementsByMultipliers(titulo.substring(0, 8), [2, 3, 4, 5, 6, 7, 8, 9])
81
- const dv1 = sum1 % 11 >= 10 ? 0 : sum1 % 11
82
-
83
- const sum2 = sumElementsByMultipliers(titulo.substring(8, 10) + dv1, [7, 8, 9])
84
- const dv2 = sum2 % 11 >= 10 ? 0 : sum2 % 11
85
-
86
- return `${dv1}${dv2}`
87
- }
88
-
89
- /**
90
- * Aplica uma máscara ao número informado
91
- *
92
- * @param {String} value Número de Processo
93
- * @returns {String} Valor com a máscara
94
- */
95
- export const mask = (value: string | number): string => applyMask(value, '0000.0000.0000')
96
- // const mask = (value) => applyMask(value, '0000.0000.0000');
97
-
98
- /**
99
- * fake()
100
- * Gera um número válido
101
- *
102
- * @returns {String}
103
- */
104
- export const fake = (withMask: boolean = false): string => {
105
- const num = fakeNumber(8, true)
106
-
107
- const uf = (Math.random() * 27 + 1).toFixed(0).padStart(2, '0')
108
-
109
- const titulo = `${num}${uf}${dv(num + uf)}`
110
-
111
- if (withMask) return mask(titulo)
112
- return titulo
113
- }
114
-
115
- /**
116
- * validateOrFail()
117
- * Valida se um número de processo está correto e
118
- * retorna uma exceção se não estiver
119
- *
120
- * @returns {Boolean}
121
- */
122
- export const validateOrFail = (value: string | number): boolean => {
123
- const titulo = clearValue(value, 12)
124
-
125
- if (dv(titulo) !== titulo.substring(10, 12)) {
126
- throw new Error('Dígito verificador inválido')
127
- }
128
-
129
- return true
130
- }
131
-
132
- /**
133
- * validate()
134
- * Valida se um número de processo está correto
135
- *
136
- * @returns {Boolean}
137
- */
138
- export const validate = (value: string | number): boolean => {
139
- try {
140
- return validateOrFail(value)
141
- } catch (error) {
142
- return false
143
- }
144
- }
145
-
146
- export default validate
@@ -1,17 +0,0 @@
1
- const { applyMask } = require('./utils')
2
-
3
- describe('applyMask()', () => {
4
- const items = [
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
- ]
10
-
11
- test('Máscara deve ser aplicada com o valor e tamanho correto', () => {
12
- items.forEach((item) => {
13
- expect(item.expected.length).toBe(item.mask.length)
14
- expect(applyMask(item.value, item.mask)).toBe(item.expected)
15
- })
16
- })
17
- })
@@ -1,55 +0,0 @@
1
- import { clearValue } from './utils'
2
-
3
- describe('clearValue()', () => {
4
- test('Deve limpar o valor - Strings do Mesmo tamanho', () => {
5
- //
6
- const valid = [
7
- { value: 1234567890, size: 10, expected: '1234567890' },
8
- { value: '1234567890', size: 10, expected: '1234567890' },
9
- { value: '12.345.678-90', size: 10, expected: '1234567890' },
10
- ]
11
-
12
- valid.forEach((item) => {
13
- expect(clearValue(item.value, item.size)).toBe(item.expected)
14
- })
15
- })
16
-
17
- test('Deve limpar os caracteres não numéricos sem verificar o tamanho da string', () => {
18
- //
19
- const valid = [
20
- { value: 1234567890123, size: null, expected: '1234567890123' },
21
- { value: '4567890', size: null, expected: '4567890' },
22
- { value: '345.678-90', size: null, expected: '34567890' },
23
- ]
24
-
25
- valid.forEach((item) => {
26
- expect(clearValue(item.value, item.size)).toBe(item.expected)
27
- })
28
- })
29
-
30
- test('Deve limpar o valor os caracteres não numéricos e completar com zeros à esquerda', () => {
31
- //
32
- const valid = [
33
- { value: 1234, size: 10, expected: '0000001234' },
34
- { value: '1234', size: 10, expected: '0000001234' },
35
- { value: '123-4', size: 10, expected: '0000001234' },
36
- ]
37
-
38
- valid.forEach((item) => {
39
- expect(clearValue(item.value, item.size)).toBe(item.expected)
40
- })
41
- })
42
-
43
- test('Deve limpar o valor os caracteres não numéricos e remover os caracteres que passarem de size', () => {
44
- //
45
- const valid = [
46
- { value: 123456789, size: 4, expected: '1234' },
47
- { value: '1234567890', size: 4, expected: '1234' },
48
- { value: '12.345.678-90', size: 4, expected: '1234' },
49
- ]
50
-
51
- valid.forEach((item) => {
52
- expect(clearValue(item.value, item.size)).toBe(item.expected)
53
- })
54
- })
55
- })
@@ -1,19 +0,0 @@
1
- const { fakeNumber } = require('./utils')
2
-
3
- describe('fakeNumber()', () => {
4
- test('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('forceLength = false', () => {
13
- const num = fakeNumber(4)
14
-
15
- expect(num).toBeLessThanOrEqual(9999)
16
- expect(num).toBeGreaterThanOrEqual(0)
17
- expect(typeof num).toBe('number')
18
- })
19
- })
@@ -1,15 +0,0 @@
1
- import { insertAtPosition } from './utils'
2
-
3
- describe('insertAtPosition()', () => {
4
- test('Deve inserir um caractere em uma determinada posição da string', () => {
5
- //
6
- const list = [
7
- { value: 'AAABBB', insert: 'C', position: 3, expected: 'AAACBBB' },
8
- { value: 'J Med', insert: 'Cl ', position: 2, expected: 'J Cl Med' },
9
- ]
10
-
11
- list.forEach((item) => {
12
- expect(insertAtPosition(item.value, item.insert, item.position)).toBe(item.expected)
13
- })
14
- })
15
- })
@@ -1,27 +0,0 @@
1
- const { invalidListGenerator } = require('./utils')
2
-
3
- describe('invalidListGenerator()', () => {
4
- test('invalidListGenerator - Número de itens', () => {
5
- const list = invalidListGenerator(4)
6
-
7
- expect(1).toBe(1)
8
- expect(Array.isArray(list)).toBeTruthy()
9
- })
10
-
11
- test('invalidListGenerator - Tamanho dos itens', () => {
12
- const valid = [
13
- { length: 10, size: 8 },
14
- { length: 10, size: 4 },
15
- ]
16
-
17
- valid.forEach((item) => {
18
- const list = invalidListGenerator(item.size)
19
-
20
- expect(list).toHaveLength(10)
21
-
22
- list.forEach((num: string) => {
23
- expect(num).toHaveLength(item.size)
24
- })
25
- })
26
- })
27
- })
@@ -1,15 +0,0 @@
1
- import { removeFromPosition } from './utils'
2
-
3
- describe('removeFromPosition()', () => {
4
- test('', () => {
5
- //
6
- const list = [
7
- { value: 'Jossé', start: 2, end: 3, expected: 'José' },
8
- { value: 'Cláuudio', start: 4, end: 5, expected: 'Cláudio' },
9
- ]
10
-
11
- list.forEach((item) => {
12
- expect(removeFromPosition(item.value, item.start, item.end)).toBe(item.expected)
13
- })
14
- })
15
- })
@@ -1,34 +0,0 @@
1
- const { sumElementsByMultipliers } = require('./utils')
2
-
3
- describe('sumElementsByMultipliers()', () => {
4
- test('Tipo do retorno', () => {
5
- const sum = sumElementsByMultipliers('1234', '9876')
6
-
7
- expect(typeof sum).toBe('number')
8
- expect(sum).toBe(70)
9
- })
10
-
11
- test('Valores retornados', () => {
12
- ;[
13
- { input: '1234', multipliers: '9876', expected: 70 },
14
- { input: '1234', multipliers: [9, 8, 7, 6], expected: 70 },
15
- // cnpj
16
- { input: '112223330001', multipliers: [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2], expected: 102 },
17
- { input: '1122233300018', multipliers: '6543298765432', expected: 120 },
18
- // cpf
19
- { input: '280012389', multipliers: [10, 9, 8, 7, 6, 5, 4, 3, 2], expected: 162 },
20
- { input: '2800123893', multipliers: [11, 10, 9, 8, 7, 6, 5, 4, 3, 2], expected: 201 },
21
- // titulo
22
- { input: '10238501', multipliers: '23456789', expected: 117 },
23
- { input: '067', multipliers: '789', expected: 111 },
24
- ].forEach((item) => {
25
- const sum = sumElementsByMultipliers(item.input, item.multipliers)
26
- expect(sum).toBe(item.expected)
27
- })
28
-
29
- const sum = sumElementsByMultipliers('1234', '9876')
30
-
31
- expect(typeof sum).toBe('number')
32
- expect(sum).toBe(70)
33
- })
34
- })
@@ -1,16 +0,0 @@
1
- const { sumToDV } = require('./utils')
2
-
3
- describe('sumToDV()', () => {
4
- test('Os resultados devem ser os esperados', () => {
5
- const list = [
6
- { value: 102, expected: 8 },
7
- { value: 120, expected: 1 },
8
- { value: 162, expected: 3 },
9
- { value: 179, expected: 8 },
10
- ]
11
-
12
- list.forEach((item) => {
13
- expect(sumToDV(item.value)).toBe(item.expected)
14
- })
15
- })
16
- })