Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions test/fixtures/test-runner/coverage/coverage-control-comments.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
'use strict';
const { test } = require('node:test');

function coveredFunction() {
return 'This function is covered in coverage';
}

/* node:coverage ignore next 7 */
function ignoredFunctionDefinitionWithCount() {
const ignoredVar = true;
if (ignoredVar) {
return 'This line is ignored';
}
return 'This should not be returned';
}

/* node:coverage disable */
function disabledFunction() {
return 'This function is entirely disabled in coverage';
}
/* node:coverage enable */

test('coverage control comments fixture', () => {
coveredFunction();
});
38 changes: 38 additions & 0 deletions test/parallel/test-runner-coverage.js
Original file line number Diff line number Diff line change
Expand Up @@ -550,3 +550,41 @@ test('correctly prints the coverage report of files contained in parent director
assert(result.stdout.toString().includes(report));
assert.strictEqual(result.status, 0);
});

test('should respect /* node:coverage */ comments', skipIfNoInspector, () => {
const report = [
'# start of coverage report',
'# ---------------------------------------------------------------------------------',
'# file | line % | branch % | funcs % | uncovered lines',
'# ---------------------------------------------------------------------------------',
'# test | | | | ',
'# fixtures | | | | ',
'# test-runner | | | | ',
'# coverage | | | | ',
'# coverage-control-comments.js | 100.00 | 100.00 | 100.00 | ',
'# ---------------------------------------------------------------------------------',
'# all files | 100.00 | 100.00 | 100.00 | ',
'# ---------------------------------------------------------------------------------',
'# end of coverage report',
].join('\n');

if (common.isWindows) {
return report.replaceAll('/', '\\');
}

const fixture = fixtures.path('test-runner', 'coverage', 'coverage-control-comments.js');
const args = [
'--test',
'--experimental-test-coverage',
'--test-coverage-exclude=!test/**',
'--test-reporter',
'tap',
fixture,
];

const result = spawnSync(process.execPath, args);

assert.strictEqual(result.stderr.toString(), '');
assert(result.stdout.toString().includes(report));
assert.strictEqual(result.status, 0);
});
Loading