Skip to content

Commit 59e6158

Browse files
adamjmcgrathRobbieTheWagner
authored andcommitted
fix: handle babel 7 absolute paths (#199)
1 parent 5987f6c commit 59e6158

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed

lib/attach-middleware.js

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,16 @@ function fixFilePaths(coverageData, fileLookup) {
1818
return coverageData;
1919
}
2020

21-
function writeCoverage(coverage, fileLookup, map) {
21+
function writeCoverage(coverage, fileLookup, root, map) {
22+
// Convert absolute paths (path to process.cwd + module path) to relative (module) paths, when necessary (babel >6)
23+
// eg. /Users/user/apps/my-ember-app/my-ember-app/app.js => my-ember-app/app.js
24+
const fixedCoverage = Object.keys(coverage).reduce((memo, filePath) => {
25+
const modulePath = path.relative(root, filePath);
26+
memo[modulePath] = Object.assign({}, coverage[filePath], { path: modulePath });
27+
return memo;
28+
}, {});
2229
Object.keys(fileLookup).forEach(filename => {
23-
let fileCoverage = coverage[filename] || istanbul.libCoverage.createFileCoverage(filename).data;
30+
let fileCoverage = fixedCoverage[filename] || istanbul.libCoverage.createFileCoverage(filename).data;
2431
map.addFileCoverage(fixFilePaths(fileCoverage, fileLookup));
2532
});
2633
}
@@ -45,7 +52,7 @@ function reportCoverage(map, root, configPath) {
4552
}
4653

4754
function coverageHandler(map, options, req, res) {
48-
writeCoverage(req.body, options.fileLookup, map);
55+
writeCoverage(req.body, options.fileLookup, options.root, map);
4956
reportCoverage(map, options.root, options.configPath);
5057
res.send(map.getCoverageSummary());
5158
}

test/integration/app-coverage-test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ describe('app coverage generation', function() {
2525
}).then(() => {
2626
app.editPackageJSON(pkg => {
2727
pkg.devDependencies['ember-exam'] = '1.0.0';
28+
pkg.devDependencies['ember-cli-babel'] = '^7.1.0';
2829
// Temporarily remove the addon before install to work around https://github.com/tomdale/ember-cli-addon-tests/issues/176
2930
delete pkg.devDependencies['ember-cli-code-coverage'];
3031
});

0 commit comments

Comments
 (0)