istanbul-react

1.1.0 • Public • Published

istanbul-react Build Status Dependency Status

Instrumenter for 1:1 mapping of React JSX components, can be used with karma-coverage

Install

$ npm install --save-dev istanbul-react

Usage

Use with karma-coverage

coverageReporter: {
  instrumenters: { 'istanbul-react' : require('istanbul-react') }
  instrumenter: {
    '**/*.jsx': 'istanbul-react'
  },
  // ...
}

You can also just use it directly

var instrumenter = new require('istanbul-react').Instrumenter({});
 
instrumenter.instrument(content, path, function(err, instrumentedCode) {
  // ...
});

Options

You can use modifyCodeBeforeInstrumentation to modify code before instrumentation. It might be useful for example to get around chrome bug with 'use strict';. It takes one argument, which give you an object, with two properties code - original code, filename - name of the file. This callback must return modified code as a string. In the example below you can see how 'use strict'; is prefixed with semi-colon to work around bug (or feature?) in chrome.

coverageReporter: {
  instrumenters: { 'istanbul-react' : require('istanbul-react') }
  instrumenter: {
    '**/*.jsx': 'istanbul-react'
  },
  instrumenterOptions: {
    'istanbul-react': {
      modifyCodeBeforeInstrumentation: function fixChromeBugWithUseStrict(params) {
        return params.code.replace(/(['"]use strict['"];)/g, ';$1');
      }
    }
  },
  // ...
}

Tests

$ npm test

License

MIT © Podio

Package Sidebar

Install

npm i istanbul-react

Weekly Downloads

50

Version

1.1.0

License

MIT

Last publish

Collaborators

  • dmatteo
  • anifacted
  • albertfdp