istanbul-react
v1.1.0
Published
Instrumenter for 1:1 mapping of React JSX components
Downloads
158
Readme
istanbul-react
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