module: increase code coverage of cjs loader

Add test cases to cover uncovered wrap and wrapper getters.

Refs: https://coverage.nodejs.org/coverage-99268b1e996d13a0/lib/internal/modules/cjs/loader.js.html#L153

PR-URL: https://github.com/nodejs/node/pull/27898
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Jan Krems <jan.krems@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
Andrey Melikhov 2019-05-26 15:51:36 +03:00 committed by Rich Trott
parent a1cb14a4dc
commit 6ef4d9ef11
4 changed files with 34 additions and 1 deletions

View File

@ -1,3 +1,4 @@
'use strict';
const assert = require('assert'); const assert = require('assert');
const m = require('module'); const m = require('module');

23
test/fixtures/cjs-module-wrapper.js vendored Normal file
View File

@ -0,0 +1,23 @@
'use strict';
const assert = require('assert');
const m = require('module');
global.mwc = 0;
const originalWrapper = m.wrapper;
const patchedWrapper = {...m.wrapper};
patchedWrapper[0] += 'global.mwc = (global.mwc || 0 ) + 1';
// Storing original version of wrapper function
m.wrapper = patchedWrapper;
require('./not-main-module.js');
assert.strictEqual(mwc, 1);
// Restoring original wrapper function
m.wrapper = originalWrapper;
// Cleaning require cache
delete require.cache[require.resolve('./not-main-module.js')];
delete global.mwc;

View File

@ -4,6 +4,6 @@ const fixtures = require('../common/fixtures');
const { execFileSync } = require('child_process'); const { execFileSync } = require('child_process');
const cjsModuleWrapTest = fixtures.path('cjs-module-wrap.js'); const cjsModuleWrapTest = fixtures.path('cjs-module-wrap.js');
const node = process.argv[0]; const node = process.execPath;
execFileSync(node, [cjsModuleWrapTest], { stdio: 'pipe' }); execFileSync(node, [cjsModuleWrapTest], { stdio: 'pipe' });

View File

@ -0,0 +1,9 @@
'use strict';
require('../common');
const fixtures = require('../common/fixtures');
const { execFileSync } = require('child_process');
const cjsModuleWrapTest = fixtures.path('cjs-module-wrapper.js');
const node = process.execPath;
execFileSync(node, [cjsModuleWrapTest], { stdio: 'pipe' });