From 270ae3d17aba69ec2357fe187b7bf20fd16f11da Mon Sep 17 00:00:00 2001 From: Michael Rawlings Date: Mon, 21 Nov 2016 17:33:32 -0800 Subject: [PATCH] correct coverage for files swapped by the browser field in package.json --- package.json | 1 + test/browser-tests-runner/lasso-istanbul-plugin.js | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index ded64fc5d1..55e81f1b31 100644 --- a/package.json +++ b/package.json @@ -93,6 +93,7 @@ "jshint": "^2.5.0", "lasso": "^2.4.1", "lasso-marko": "^2.1.0", + "lasso-resolve-from": "^1.2.0", "md5-hex": "^1.3.0", "mkdirp": "^0.5.1", "mocha": "^2.3.3", diff --git a/test/browser-tests-runner/lasso-istanbul-plugin.js b/test/browser-tests-runner/lasso-istanbul-plugin.js index 9e1a80e25d..8700286b33 100644 --- a/test/browser-tests-runner/lasso-istanbul-plugin.js +++ b/test/browser-tests-runner/lasso-istanbul-plugin.js @@ -1,4 +1,6 @@ +var fs = require('fs'); var istanbul = require('istanbul-lib-instrument'); +var resolve = require('lasso-resolve-from'); module.exports = function(lasso, pluginConfig) { var instrumenter = istanbul.createInstrumenter(); @@ -15,7 +17,14 @@ module.exports = function(lasso, pluginConfig) { || file.includes('benchmark/') ) return code; - return instrumenter.instrumentSync(code, context.dependency.file); + if(context.dependency.type === 'commonjs-def') { + var unwrappedCode = code.replace(/^\$\_mod[^\n]+?\{ /, '').replace(/\n\}\);$/, ''); + } + + var actualFile = resolve(__dirname, file).path; + var instrumentedCode = instrumenter.instrumentSync(unwrappedCode || code, actualFile); + + return unwrappedCode ? code.replace(unwrappedCode, instrumentedCode) : instrumentedCode; } }); } \ No newline at end of file