From 164a61761a81169fc66ff8b7939cb7859b50eb3c Mon Sep 17 00:00:00 2001 From: Bruno Jouhier Date: Tue, 2 Feb 2016 22:04:37 +0000 Subject: [PATCH 1/2] removed buggy regexp option from instrument filter --- lib/coverage.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/coverage.js b/lib/coverage.js index 3858960..58ffd5e 100644 --- a/lib/coverage.js +++ b/lib/coverage.js @@ -59,7 +59,6 @@ exports.instrument = function(options) { files = Array.isArray(files) ? files : [files]; return files.some(function(f) { if (typeof f === 'string') return file.indexOf(f) === 0; - else if (f instanceof RegExp) return f.test(file); else throw new Error("invalid entry in options.coverage.files: " + typeof f); }); } else { From afc4beca06e26a18af612a7a50d87357882ad505 Mon Sep 17 00:00:00 2001 From: Bruno Jouhier Date: Tue, 2 Feb 2016 22:25:37 +0000 Subject: [PATCH 2/2] unit test for instrumentation of multiple files --- test/fixtures/coverage-multiple-code.js | 1 + test/testrunner.js | 34 +++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 test/fixtures/coverage-multiple-code.js diff --git a/test/fixtures/coverage-multiple-code.js b/test/fixtures/coverage-multiple-code.js new file mode 100644 index 0000000..d21a63b --- /dev/null +++ b/test/fixtures/coverage-multiple-code.js @@ -0,0 +1 @@ +module.exports = require('./coverage-code') \ No newline at end of file diff --git a/test/testrunner.js b/test/testrunner.js index fdb3eb0..5518d8b 100644 --- a/test/testrunner.js +++ b/test/testrunner.js @@ -191,6 +191,40 @@ chain.add('coverage', function() { }); }); +chain.add('coverage-multiple', function() { + tr.options.coverage = true; + tr.run({ + code: fixtures + '/coverage-multiple-code.js', + tests: fixtures + '/coverage-test.js', + coverage: { + files: [ + fixtures + '/coverage-multiple-code.js', + fixtures + '/coverage-code.js' + ], + }, + }, function(err, res) { + var stat = { + files: 1, + tests: 2, + assertions: 3, + failed: 0, + passed: 3, + coverage: { + files: 1, + statements: { covered: 7, total: 8 }, + branches: { covered: 0, total: 0 }, + functions: { covered: 3, total: 4 }, + lines: { covered: 7, total: 8 } + } + }; + delete res.runtime; + a.equal(err, null, 'no errors'); + a.deepEqual(stat, res, 'coverage multiple code testing works'); + tr.options.coverage = false; + chain.next(); + }); +}); + if (generators.support) { chain.add('generators', function() { tr.run({