From cc62a8e960e46439e36c86f6ee702a6131ed6764 Mon Sep 17 00:00:00 2001 From: "Trevor D. McKeown" Date: Mon, 27 May 2024 08:39:30 -0400 Subject: [PATCH] chore: refactored karma configs to support variations in the following settings: plugins, coverageRpoerter.reporters, logLevel chore: refactored karma configs for CI/DI, developer, and debug chore: fixed an build breaking bug for karma fast-fail plugin chore: moved coverage reports folder chore: new npm run test:coverage command. refactor: adding a message at the end of npm run test:ci command. fix: Adding browser disconnects retries. --- .gitignore | 2 +- package.json | 7 ++++--- src/karma/karma-ci.conf.js | 13 +++++++------ src/karma/karma-cli.conf.js | 9 ++++++--- src/karma/karma-conf-obj.js | 13 ++++--------- src/karma/karma-coverage.conf.js | 13 +++++++++++++ src/karma/karma.conf.js | 8 ++++++-- 7 files changed, 41 insertions(+), 24 deletions(-) create mode 100644 src/karma/karma-coverage.conf.js diff --git a/.gitignore b/.gitignore index ae032462..3971b6a8 100644 --- a/.gitignore +++ b/.gitignore @@ -36,7 +36,7 @@ speed-measure-plugin.json # misc /.sass-cache /connect.lock -/coverage +.coverage /libpeerconnection.log npm-debug.log yarn-error.log diff --git a/package.json b/package.json index 1f4f9636..4da11f5a 100644 --- a/package.json +++ b/package.json @@ -6,9 +6,10 @@ "ng": "npx ng", "start": "npx ng serve --host 0.0.0.0", "build": "npx ng build", - "test": "npx ng test --code-coverage", - "test:cli": "npx ng test --karma-config=src/karma/karma-cli.conf.js --code-coverage", - "test:ci": "npx ng test --karma-config=src/karma/karma-ci.conf.js --code-coverage", + "test": "npx ng test --karma-config=src/karma/karma-cli.conf.js --code-coverage", + "test:debug": "npx ng test --code-coverage", + "test:ci": "npx ng test --karma-config=src/karma/karma-ci.conf.js --code-coverage --progress false; [ $? -eq '0' ] && echo 'Completed Successfully.' || echo 'Test(s) Failed!';", + "test:coverage": "npx ng test --karma-config=src/karma/karma-coverage.conf.js --code-coverage --progress false", "lint": "npx ng lint --lint-file-patterns=src/app/**/*.ts", "format": "npx prettier 'src/**/*.{ts,tsx}' --write", "gh-pages:build": "npm run gh-pages:clean && npm run gh-pages:bundle && npm run gh-pages:deploy", diff --git a/src/karma/karma-ci.conf.js b/src/karma/karma-ci.conf.js index fe6a691f..6a1a4d1f 100755 --- a/src/karma/karma-ci.conf.js +++ b/src/karma/karma-ci.conf.js @@ -4,11 +4,12 @@ const { conf } = require('./karma-conf-obj'); let reporters = ['coverage', 'fail-fast']; conf.reporters = reporters; conf.failOnFailingTestSuite = true; -conf.failOnSkippedTests = true; +conf.failOnSkippedTests = false; +conf.logLevel = 'FATAL'; +conf.plugins.push(require('karma-fail-fast-reporter')) +conf.coverageReporter.reporters.push({ type: 'lcov' }); module.exports = function (config) { - config.LOG_LOG = 'WARN'; -// config.LOG_LOG = 'OFF'; -// config.failOnFailingTestSuite = true; -// config.failOnSkippedTests = true; - (conf.logLevel = config.LOG_LOG), config.set(conf); + const c = {}; + Object.assign(c, config, conf); + config.set(c); }; diff --git a/src/karma/karma-cli.conf.js b/src/karma/karma-cli.conf.js index 7c6b8ce7..2b402273 100644 --- a/src/karma/karma-cli.conf.js +++ b/src/karma/karma-cli.conf.js @@ -1,9 +1,12 @@ // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html const { conf } = require('./karma-conf-obj'); -let reporters = ['coverage', 'verbose']; +let reporters = ['coverage', 'progress']; conf.reporters = reporters; +conf.logLevel = 'WARN'; +conf.coverageReporter.reporters.push({ type: 'text-summary' }); module.exports = function (config) { - config.LOG_LOG = 'OFF'; - (conf.logLevel = config.LOG_LOG), config.set(conf); + const c = {}; + Object.assign(c, config, conf); + config.set(c); }; diff --git a/src/karma/karma-conf-obj.js b/src/karma/karma-conf-obj.js index 1d7082ce..c21a48a8 100644 --- a/src/karma/karma-conf-obj.js +++ b/src/karma/karma-conf-obj.js @@ -14,8 +14,7 @@ module.exports.conf = { require('@angular-devkit/build-angular/plugins/karma'), require('karma-verbose-reporter'), require('karma-typescript'), - require('karma-coverage'), - require('karma-fail-fast-reporter') + require('karma-coverage') ], preprocessors: { '**/*.ts': ['karma-typescript', 'coverage'], @@ -33,13 +32,9 @@ module.exports.conf = { } }, coverageReporter: { - dir: require('path').join(__dirname, '../coverage'), + dir: require('path').join(__dirname, '../../.coverage'), subdir: '.', - reporters: [ - { type: 'lcovonly' }, - { type: 'text-summary' }, - { type: 'text' } - ], + reporters: [], fixWebpackSourcePaths: true }, browserConsoleLogOptions: { @@ -67,7 +62,7 @@ module.exports.conf = { ], browserDisconnectTimeout: 280000, browserNoActivityTimeout: 280000, - browserDisconnectTolerance : 1 + browserDisconnectTolerance : 3 } } /** ** / diff --git a/src/karma/karma-coverage.conf.js b/src/karma/karma-coverage.conf.js new file mode 100644 index 00000000..f2c0db3b --- /dev/null +++ b/src/karma/karma-coverage.conf.js @@ -0,0 +1,13 @@ +const { conf } = require('./karma-conf-obj'); +let reporters = ['coverage', 'fail-fast']; +conf.reporters = reporters; +conf.failOnFailingTestSuite = true; +conf.failOnSkippedTests = false; +conf.logLevel = 'OFF'; +conf.plugins.push(require('karma-fail-fast-reporter')) +conf.coverageReporter.reporters.push({ type: 'text' }); +module.exports = function (config) { + const c = {}; + Object.assign(c, config, conf); + config.set(c); +}; \ No newline at end of file diff --git a/src/karma/karma.conf.js b/src/karma/karma.conf.js index 1e2afe15..395c6295 100644 --- a/src/karma/karma.conf.js +++ b/src/karma/karma.conf.js @@ -3,8 +3,12 @@ let { conf } = require('./karma-conf-obj'); let reporters = ['coverage', 'verbose', 'progress']; conf.reporters = reporters; +conf.logLevel = 'INFO'; +conf.coverageReporter.reporters.push({ type: 'text-summary' }); +conf.coverageReporter.reporters.push({ type: 'text' }); module.exports = function (config) { - config.LOG_LOG = 'WARN'; - (conf.logLevel = config.LOG_LOG), config.set(conf); + const c = {}; + Object.assign(c, config, conf); + config.set(c); }