diff --git a/.dockerignore b/.dockerignore index 8e99f1c74f4..a9bb5520df6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -18,7 +18,7 @@ /frontend/.vscode/ /frontend/build/ /frontend/node_modules/ -/frontend/src/coverage/ +/frontend/coverage/ /frontend/*.md /.git/ diff --git a/.gitignore b/.gitignore index a9d5eac339a..ab14928efec 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ **/certs/ **/node_modules/ -**/coverage/ **/dist/ **/build/ **/.eslintcache diff --git a/frontend/.gitignore b/frontend/.gitignore index b9880322810..563bc3b0e08 100644 --- a/frontend/.gitignore +++ b/frontend/.gitignore @@ -9,7 +9,7 @@ .pnp.js # testing -/src/coverage +/coverage test-report.xml # production diff --git a/frontend/jest.config.js b/frontend/jest.config.js index 9e27e8eb1c3..d686ba4bbe4 100644 --- a/frontend/jest.config.js +++ b/frontend/jest.config.js @@ -4,14 +4,13 @@ module.exports = { preset: 'ts-jest', testEnvironment: 'jsdom', automock: false, - rootDir: './src', testResultsProcessor: 'jest-sonar-reporter', - setupFilesAfterEnv: ['/setupTests.ts'], + setupFilesAfterEnv: ['/src/setupTests.ts'], moduleNameMapper: { - '\\.(svg)$': '/svg.mock.js', - '\\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '/file.mock.js', + '\\.(svg)$': '/src/svg.mock.js', + '\\.(jpg|jpeg|png|gif|eot|otf|webp|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': '/src/file.mock.js', '\\.(css|less)$': 'identity-obj-proxy', - 'monaco-editor': '/../node_modules/react-monaco-editor', + 'monaco-editor': '/node_modules/react-monaco-editor', }, watchPathIgnorePatterns: ['/../node_modules', '/../.eslintcache', '/../coverage'], moduleFileExtensions: ['js', 'json', 'jsx', 'node', 'ts', 'tsx'], @@ -22,6 +21,14 @@ module.exports = { '\\.(css|less)$': 'jest-raw-loader', }, transformIgnorePatterns: ['node_modules/(?!d3-interpolate|d3-color|react-monaco-editor|openshift-assisted-ui-lib)'], + coverageDirectory: './coverage', coverageReporters: ['text', 'text-summary', 'html', 'lcov'], + collectCoverageFrom: [ + '/src/**/*.{tsx,ts,jsx,js}', + '/src/*.{tsx,ts,jsx,js}', + '!/src/**/*.test.{tsx,ts,jsx,js}', + '!/src/*.test.{tsx,ts,jsx,js}', + '!/node_modules/**', + ], bail: true, } diff --git a/frontend/package.json b/frontend/package.json index e8ac137f3f7..0a1d8b4bcfd 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,8 +12,7 @@ "build:plugin:mce": "PLUGIN=mce npm run build:plugin", "tsc:noEmit": "tsc --noEmit", "clean": "rm -rf coverage build", - "test": "concurrently --kill-others-on-fail npm:jest npm:eslint npm:prettier npm:tsc -c green,blue,cyan,magenta", - "jest:coverage": "JEST_JUNIT_OUTPUT_DIR=coverage jest test --all --watchAll=true --ci --coverage --reporters=default --coverageReporters=lcov --coverageReporters=html --coverageReporters=text --coverageReporters=text-summary --verbose", + "test": "JEST_JUNIT_OUTPUT_DIR=coverage jest test --runInBand --all --watchAll=false --ci --coverage --reporters=default --coverageReporters=lcov --coverageReporters=html --coverageReporters=text --coverageReporters=text-summary --testResultsProcessor jest-sonar-reporter", "jest": "jest --runInBand", "jest:parallel": "jest", "eslint": "eslint src --ext .js,.jsx,.ts,.tsx --max-warnings=0", diff --git a/sonar-project.properties b/sonar-project.properties index c553d78e656..5b2eba8adf5 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,9 +1,9 @@ sonar.projectKey=open-cluster-management_console sonar.projectName=console sonar.organization=open-cluster-management -sonar.sources=frontend +sonar.sources=frontend/src sonar.exclusions=node_modules/**/*,backend/**/*,frontend/node_modules/**/*,frontend/src/atoms.tsx -sonar.tests=frontend +sonar.tests=frontend/src sonar.test.inclusions=frontend/**/*.test.tsx,frontend/**/*.test.ts -sonar.javascript.lcov.reportPaths=frontend/src/coverage/lcov.info +sonar.javascript.lcov.reportPaths=frontend/coverage/lcov.info sonar.testExecutionReportPaths=frontend/test-report.xml