Socket
Socket
Sign inDemoInstall

karma-sabarivka-reporter

Package Overview
Dependencies
209
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    karma-sabarivka-reporter

A Karma plugin. Adds untested files to istanbul coverage statistic


Version published
Weekly downloads
5.3K
decreased by-30.15%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

logo

karma-sabarivka-reporter Version Badge

Code coverage badge Snyk Vulnerabilities badge Maintainability Language grade: JavaScript

NPM badge

⭐️ Please, star me on GitHub — it helps!

karma-sabarivka-reporter – is a Karma plugin which adds untested files to istanbul coverage statistic

screenshot before

screenshot after

📖 Table of Contents

❓ Why? 🔝

With karma, to test source code – you need to include only *.spec.(ts|js) files into test config. Then those spec files will import corresponding source code files. This leads to an issue with "fake" test coverage, as if some source code file would be omitted by all *.spec.(ts|js)) files – this source code file won't be shown in coverage report at all.

karma-sabarivka-reporter plugin fixes described issue by going through all the source files and including them explicitly into coverage result.

Plugin works with both: TypeScript (*.ts) and JavaScript (*.js) files

✨ Features 🔝

💾 Install 🔝

With npm installed, run

npm install --save-dev karma-sabarivka-reporter

🎛️ API 🔝

@param {string[] | string} coverageReporter.include - Glob pattern, string or array of strings. Files which should be included into the coverage result.

🤹 Usage 🔝

Important Note: if used with karma-coverage, 'sabarivka' should go before 'coverage' in reporters list

Update karma.conf.js

include as array of strings 🔝

reporters: [
  // ...
  'sabarivka'
  // 'coverage-istanbul' or 'coverage' (reporters order is important for 'coverage' reporter)
  // ...
],
coverageReporter: {
  include: [
      // Specify include pattern(s) first
      'src/**/*.(ts|js)',
      // Then specify "do not touch" patterns (note `!` sign on the beginning of each statement)
      '!src/main.(ts|js)',
      '!src/**/*.spec.(ts|js)',
      '!src/**/*.module.(ts|js)',
      '!src/**/environment*.(ts|js)'
  ]
},

Same result may be achieved with more complex one line glob pattern

include as string 🔝

reporters: [
  // ...
  'sabarivka'
  // 'coverage-istanbul' or 'coverage' (reporters order is important for 'coverage' reporter)
  // ...
],
coverageReporter: {
    include: 'src/**/!(*.spec|*.module|environment*|main).(ts|js)',
},

karma plugins section 🔝

If your karma config has plugins section, add also karma-sabarivka-reporter there, otherwise — no action is required.

Karma's documentation:

By default, Karma loads all sibling NPM modules which have a name starting with karma-*.
You can also explicitly list plugins you want to load via the plugins configuration setting. The configuration value can either be a string (module name), which will be required by Karma, or an object (inlined plugin).

See here more info on how karma plugins loading works

plugins: [
  // ...
  require('karma-sabarivka-reporter'),
  // ...
],

📄 License 🔝

This software is licensed under the MIT

Stargazers over time

Stargazers over time

Keywords

FAQs

Last updated on 07 Dec 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc