From a65baa06fd6f1c7bc4826c3c5954a3d6ac96d6ab Mon Sep 17 00:00:00 2001 From: Jan Szumotalski Date: Thu, 19 Jun 2025 10:45:17 +0200 Subject: [PATCH] actions: add karma config --- .gitea/workflows/test.yaml | 7 ++++++ angular.json | 1 + karma.conf.js | 45 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 karma.conf.js diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml index 9987baa..915f624 100644 --- a/.gitea/workflows/test.yaml +++ b/.gitea/workflows/test.yaml @@ -11,6 +11,13 @@ jobs: steps: - name: Checkout source code uses: actions/checkout@v4 + - name: Cache node modules + uses: actions/cache@v1 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- - name: Setup Node.js uses: actions/setup-node@v4 with: diff --git a/angular.json b/angular.json index 718930c..94d898e 100644 --- a/angular.json +++ b/angular.json @@ -128,6 +128,7 @@ "zone.js/testing" ], "tsConfig": "tsconfig.spec.json", + "karmaConfig": "karma.conf.js", "inlineStyleLanguage": "scss", "assets": [ "src/favicon.ico", diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..b7733f8 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,45 @@ +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html + +module.exports = function (config) { + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular-devkit/build-angular'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage'), + require('@angular-devkit/build-angular/plugins/karma') + ], + client: { + jasmine: { + // you can add configuration options for Jasmine here + // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html + // for example, you can disable the random execution with `random: false` + // or set a specific seed with `seed: 4321` + }, + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + jasmineHtmlReporter: { + suppressAll: true // removes the duplicated traces + }, + coverageReporter: { + dir: require('path').join(__dirname, './coverage/ipwa'), + subdir: '.', + reporters: [ + { type: 'html' }, + { type: 'text-summary' } + ] + }, + reporters: ['progress', 'kjhtml'], + browsers: ['Chrome'], + restartOnFileChange: true, + customLaunchers: { + ChromeHeadlessCustom: { + base: "ChromeHeadless", + flags: ["--no-sandbox", "--disable-gpu"], + }, + }, + }); +};