Skip to content

Commit e446517

Browse files
aduh95targos
authored andcommitted
test: refactor test-runner-module-mocking
PR-URL: #54233 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
1 parent 53f5c54 commit e446517

1 file changed

Lines changed: 11 additions & 33 deletions

File tree

‎test/parallel/test-runner-module-mocking.js‎

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const fixtures = require('../common/fixtures');
1010
constassert=require('node:assert');
1111
const{ relative }=require('node:path');
1212
const{ test }=require('node:test');
13-
const{ pathToFileURL }=require('node:url');
13+
const{fileURLToPath,pathToFileURL }=require('node:url');
1414

1515
test('input validation',async(t)=>{
1616
awaitt.test('throws if specifier is not a string',(t)=>{
@@ -514,41 +514,21 @@ test('CJS mocks can be used by both module systems', async (t) => {
514514
constcjsMock=t.mock.module(cjsFixture,{
515515
namedExports: {fn(){return42;}},
516516
});
517-
letesmImpl=awaitimport(cjsFixture);
517+
letesmImpl=awaitimport(pathToFileURL(cjsFixture));
518518
letcjsImpl=require(cjsFixture);
519519

520520
assert.strictEqual(esmImpl.fn(),42);
521521
assert.strictEqual(cjsImpl.fn(),42);
522522

523523
cjsMock.restore();
524524

525-
esmImpl=awaitimport(cjsFixture);
525+
esmImpl=awaitimport(pathToFileURL(cjsFixture));
526526
cjsImpl=require(cjsFixture);
527527

528528
assert.strictEqual(esmImpl.default.string,'original cjs string');
529529
assert.strictEqual(cjsImpl.string,'original cjs string');
530530
});
531531

532-
test('ESM mocks can be used by both module systems',async(t)=>{
533-
constesmFixture=fixtures.path('module-mocking','basic-esm.mjs');
534-
constesmMock=t.mock.module(esmFixture,{
535-
namedExports: {fn(){return42;}},
536-
});
537-
538-
letcjsImpl=require(esmFixture);
539-
letesmImpl=awaitimport(esmFixture);
540-
541-
assert.strictEqual(cjsImpl.fn(),42);
542-
assert.strictEqual(esmImpl.fn(),42);
543-
544-
esmMock.restore();
545-
cjsImpl=require(esmFixture);
546-
esmImpl=awaitimport(esmFixture);
547-
548-
assert.strictEqual(esmImpl.string,'original esm string');
549-
assert.strictEqual(cjsImpl.string,'original esm string');
550-
});
551-
552532
test('relative paths can be used by both module systems',async(t)=>{
553533
constfixture=relative(
554534
__dirname,fixtures.path('module-mocking','basic-esm.mjs')
@@ -586,9 +566,7 @@ test('node_modules can be used by both module systems', async (t) => {
586566
});
587567

588568
test('file:// imports are supported in ESM only',async(t)=>{
589-
constfixture=pathToFileURL(
590-
fixtures.path('module-mocking','basic-esm.mjs')
591-
).href;
569+
constfixture=fixtures.fileURL('module-mocking','basic-esm.mjs').href;
592570
constmock=t.mock.module(fixture,{
593571
namedExports: {fn(){return42;}},
594572
});
@@ -604,9 +582,9 @@ test('file:// imports are supported in ESM only', async (t) => {
604582
});
605583

606584
test('mocked modules do not impact unmocked modules',async(t)=>{
607-
constmockedFixture=fixtures.path('module-mocking','basic-cjs.js');
608-
constunmockedFixture=fixtures.path('module-mocking','basic-esm.mjs');
609-
t.mock.module(mockedFixture,{
585+
constmockedFixture=fixtures.fileURL('module-mocking','basic-cjs.js');
586+
constunmockedFixture=fixtures.fileURL('module-mocking','basic-esm.mjs');
587+
t.mock.module(`${mockedFixture}`,{
610588
namedExports: {fn(){return42;}},
611589
});
612590
constmockedImpl=awaitimport(mockedFixture);
@@ -625,18 +603,18 @@ test('defaultExports work with CJS mocks in both module systems', async (t) => {
625603
assert.strictEqual(original.string,'original cjs string');
626604
t.mock.module(fixture,{ defaultExport });
627605
assert.strictEqual(require(fixture),defaultExport);
628-
assert.strictEqual((awaitimport(fixture)).default,defaultExport);
606+
assert.strictEqual((awaitimport(pathToFileURL(fixture))).default,defaultExport);
629607
});
630608

631609
test('defaultExports work with ESM mocks in both module systems',async(t)=>{
632-
constfixture=fixtures.path('module-mocking','basic-esm.mjs');
610+
constfixture=fixtures.fileURL('module-mocking','basic-esm.mjs');
633611
constoriginal=awaitimport(fixture);
634612
constdefaultExport=Symbol('default');
635613

636614
assert.strictEqual(original.string,'original esm string');
637-
t.mock.module(fixture,{ defaultExport });
615+
t.mock.module(`${fixture}`,{ defaultExport });
638616
assert.strictEqual((awaitimport(fixture)).default,defaultExport);
639-
assert.strictEqual(require(fixture),defaultExport);
617+
assert.strictEqual(require(fileURLToPath(fixture)),defaultExport);
640618
});
641619

642620
test('wrong import syntax should throw error after module mocking.',async()=>{

0 commit comments

Comments
 (0)