Skip to content

Commit

Permalink
test_runner: require --enable-source-maps for sourcemap coverage
Browse files Browse the repository at this point in the history
PR-URL: nodejs#55359
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
  • Loading branch information
OnlyAviv authored Oct 14, 2024
1 parent 48b852a commit 10addb0
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 2 deletions.
12 changes: 10 additions & 2 deletions lib/internal/test_runner/coverage.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,19 @@ class CoverageLine {
}

class TestCoverage {
constructor(coverageDirectory, originalCoverageDirectory, workingDirectory, excludeGlobs, includeGlobs, thresholds) {
constructor(coverageDirectory,
originalCoverageDirectory,
workingDirectory,
excludeGlobs,
includeGlobs,
sourceMaps,
thresholds) {
this.coverageDirectory = coverageDirectory;
this.originalCoverageDirectory = originalCoverageDirectory;
this.workingDirectory = workingDirectory;
this.excludeGlobs = excludeGlobs;
this.includeGlobs = includeGlobs;
this.sourceMaps = sourceMaps;
this.thresholds = thresholds;
}

Expand Down Expand Up @@ -341,7 +348,7 @@ class TestCoverage {
mapCoverageWithSourceMap(coverage) {
const { result } = coverage;
const sourceMapCache = coverage['source-map-cache'];
if (!sourceMapCache) {
if (!this.sourceMaps || !sourceMapCache) {
return result;
}
const newResult = new SafeMap();
Expand Down Expand Up @@ -514,6 +521,7 @@ function setupCoverage(options) {
options.cwd,
options.coverageExcludeGlobs,
options.coverageIncludeGlobs,
options.sourceMaps,
{
__proto__: null,
line: options.lineCoverage,
Expand Down
23 changes: 23 additions & 0 deletions test/parallel/test-runner-coverage-source-map.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ function generateReport(report) {
}

const flags = [
'--enable-source-maps',
'--test', '--experimental-test-coverage', '--test-reporter', 'tap',
];

Expand All @@ -40,6 +41,28 @@ describe('Coverage with source maps', async () => {
const spawned = await common.spawnPromisified(process.execPath, flags, {
cwd: fixtures.path('test-runner', 'coverage')
});

t.assert.strictEqual(spawned.stderr, '');
t.assert.ok(spawned.stdout.includes(report));
t.assert.strictEqual(spawned.code, 1);
});

await it('should only work with --enable-source-maps', async (t) => {
const report = generateReport([
'# --------------------------------------------------------------',
'# file | line % | branch % | funcs % | uncovered lines',
'# --------------------------------------------------------------',
'# a.test.mjs | 100.00 | 100.00 | 100.00 | ',
'# index.test.js | 71.43 | 66.67 | 100.00 | 6-7',
'# stdin.test.js | 100.00 | 100.00 | 100.00 | ',
'# --------------------------------------------------------------',
'# all files | 85.71 | 87.50 | 100.00 | ',
'# --------------------------------------------------------------',
]);

const spawned = await common.spawnPromisified(process.execPath, flags.slice(1), {
cwd: fixtures.path('test-runner', 'coverage')
});
t.assert.strictEqual(spawned.stderr, '');
t.assert.ok(spawned.stdout.includes(report));
t.assert.strictEqual(spawned.code, 1);
Expand Down

0 comments on commit 10addb0

Please sign in to comment.