-
Notifications
You must be signed in to change notification settings - Fork 3
/
checkTestFiles.js
40 lines (32 loc) · 1.15 KB
/
checkTestFiles.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const fs = require('fs')
const path = require('path')
function countTsxFiles(dirPath) {
let numTsxFiles = 0
const files = fs.readdirSync(dirPath)
files.forEach(file => {
const filePath = path.join(dirPath, file)
if (fs.statSync(filePath).isDirectory()) {
numTsxFiles += countTsxFiles(filePath)
} else if (file.endsWith('.tsx') && !file.includes('stories.tsx')) {
numTsxFiles++
}
})
return numTsxFiles
}
const componentsPath = 'src/core/'
const testDirPath = 'src/test/'
const numTsxFiles = countTsxFiles(componentsPath)
const numSpecFiles = fs
.readdirSync(testDirPath)
.filter(file => file.endsWith('.spec.tsx')).length
console.log(
`Quantidade de componentes em '${componentsPath}': ${numTsxFiles} |`,
`Quantidade de arquivos de teste em '${testDirPath}': ${numSpecFiles}`
)
if (numTsxFiles !== numSpecFiles) {
console.error(
`Quantidade de componentes (${numTsxFiles}) não coincide com a quantidade de arquivos de teste (${numSpecFiles}).`
)
process.exit(1)
}
console.log(`Quantidade de componentes coincide com a quantidade de arquivos de teste.`)