| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- const fs = require('fs')
- const SKIP_FOLDERS = [
- {
- pattern: 'smart',
- reason: 'No smart components testing yet',
- },
- {
- pattern: 'AssessmentModule',
- reason: 'Assessment module is not in use for now',
- },
- ]
- const main = async () => {
- let coveredComponents = 0
- let uncoveredComponents = 0
- let skippedComponents = 0
- const skippedMessageLog = []
- const readDir = async dir => {
- const exists = fs.existsSync(`${dir}/package.json`)
- if (exists) {
- const skippedPattern = SKIP_FOLDERS.find(skip => dir.includes(`/${skip.pattern}/`))
- if (skippedPattern) {
- skippedComponents += 1
- if (!skippedMessageLog.find(skip => skip.pattern === skippedPattern.pattern)) {
- skippedMessageLog.push(skippedPattern)
- }
- return
- }
- const files = await fs.promises.readdir(dir)
- const tsxFiles = files.filter(file => file.endsWith('.tsx') && !file.endsWith('.spec.tsx'))
- const specFiles = files.filter(file => file.endsWith('.spec.tsx'))
- if (tsxFiles.length > 0 && specFiles.length === 0) {
- uncoveredComponents += 1
- console.log(`\x1b[31m${dir}\x1b[0m`)
- } else if (tsxFiles.length > 0 && specFiles.length > 0) {
- coveredComponents += 1
- }
- } else {
- const files = await fs.promises.readdir(dir, { withFileTypes: true })
- for (const file of files) {
- if (file.isDirectory()) {
- await readDir(`${dir}/${file.name}`)
- }
- }
- }
- }
- await readDir('./src')
- skippedMessageLog.forEach(skip => console.log(`Skipping '${skip.pattern}' pattern. ${skip.reason}`))
- const percentage = (coveredComponents / (coveredComponents + uncoveredComponents)) * 100
- console.log(`\nSkipped components: ${skippedComponents}`)
- console.log(`Covered components: ${coveredComponents} / ${coveredComponents + uncoveredComponents}`)
- console.log(`\x1b[34mCoverage: ${percentage.toFixed(2)} %\x1b[0m`)
- }
- main()
|