| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -10,7 +10,7 @@ const fixtures = require('../common/fixtures'); | |||
| 10 | 10 | const assert = require('node:assert'); | |
| 11 | 11 | const { relative } = require('node:path'); | |
| 12 | 12 | const { test } = require('node:test'); | |
| 13 | - const { pathToFileURL } = require('node:url'); | ||
| 13 | + const { fileURLToPath, pathToFileURL } = require('node:url'); | ||
| 14 | 14 | ||
| 15 | 15 | test('input validation', async (t) => { | |
| 16 | 16 | await t.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) => { | |||
| 514 | 514 | const cjsMock = t.mock.module(cjsFixture, { | |
| 515 | 515 | namedExports: { fn() { return 42; } }, | |
| 516 | 516 | }); | |
| 517 | - let esmImpl = await import(cjsFixture); | ||
| 517 | + let esmImpl = await import(pathToFileURL(cjsFixture)); | ||
| 518 | 518 | let cjsImpl = require(cjsFixture); | |
| 519 | 519 | ||
| 520 | 520 | assert.strictEqual(esmImpl.fn(), 42); | |
| 521 | 521 | assert.strictEqual(cjsImpl.fn(), 42); | |
| 522 | 522 | ||
| 523 | 523 | cjsMock.restore(); | |
| 524 | 524 | ||
| 525 | - esmImpl = await import(cjsFixture); | ||
| 525 | + esmImpl = await import(pathToFileURL(cjsFixture)); | ||
| 526 | 526 | cjsImpl = require(cjsFixture); | |
| 527 | 527 | ||
| 528 | 528 | assert.strictEqual(esmImpl.default.string, 'original cjs string'); | |
| 529 | 529 | assert.strictEqual(cjsImpl.string, 'original cjs string'); | |
| 530 | 530 | }); | |
| 531 | 531 | ||
| 532 | - test('ESM mocks can be used by both module systems', async (t) => { | ||
| 533 | - const esmFixture = fixtures.path('module-mocking', 'basic-esm.mjs'); | ||
| 534 | - const esmMock = t.mock.module(esmFixture, { | ||
| 535 | - namedExports: { fn() { return 42; } }, | ||
| 536 | - }); | ||
| 537 | - | ||
| 538 | - let cjsImpl = require(esmFixture); | ||
| 539 | - let esmImpl = await import(esmFixture); | ||
| 540 | - | ||
| 541 | - assert.strictEqual(cjsImpl.fn(), 42); | ||
| 542 | - assert.strictEqual(esmImpl.fn(), 42); | ||
| 543 | - | ||
| 544 | - esmMock.restore(); | ||
| 545 | - cjsImpl = require(esmFixture); | ||
| 546 | - esmImpl = await import(esmFixture); | ||
| 547 | - | ||
| 548 | - assert.strictEqual(esmImpl.string, 'original esm string'); | ||
| 549 | - assert.strictEqual(cjsImpl.string, 'original esm string'); | ||
| 550 | - }); | ||
| 551 | - | ||
| 552 | 532 | test('relative paths can be used by both module systems', async (t) => { | |
| 553 | 533 | const fixture = relative( | |
| 554 | 534 | __dirname, fixtures.path('module-mocking', 'basic-esm.mjs') | |
@@ -586,9 +566,7 @@ test('node_modules can be used by both module systems', async (t) => { | |||
| 586 | 566 | }); | |
| 587 | 567 | ||
| 588 | 568 | test('file:// imports are supported in ESM only', async (t) => { | |
| 589 | - const fixture = pathToFileURL( | ||
| 590 | - fixtures.path('module-mocking', 'basic-esm.mjs') | ||
| 591 | - ).href; | ||
| 569 | + const fixture = fixtures.fileURL('module-mocking', 'basic-esm.mjs').href; | ||
| 592 | 570 | const mock = t.mock.module(fixture, { | |
| 593 | 571 | namedExports: { fn() { return 42; } }, | |
| 594 | 572 | }); | |
@@ -604,9 +582,9 @@ test('file:// imports are supported in ESM only', async (t) => { | |||
| 604 | 582 | }); | |
| 605 | 583 | ||
| 606 | 584 | test('mocked modules do not impact unmocked modules', async (t) => { | |
| 607 | - const mockedFixture = fixtures.path('module-mocking', 'basic-cjs.js'); | ||
| 608 | - const unmockedFixture = fixtures.path('module-mocking', 'basic-esm.mjs'); | ||
| 609 | - t.mock.module(mockedFixture, { | ||
| 585 | + const mockedFixture = fixtures.fileURL('module-mocking', 'basic-cjs.js'); | ||
| 586 | + const unmockedFixture = fixtures.fileURL('module-mocking', 'basic-esm.mjs'); | ||
| 587 | + t.mock.module(`${mockedFixture}`, { | ||
| 610 | 588 | namedExports: { fn() { return 42; } }, | |
| 611 | 589 | }); | |
| 612 | 590 | const mockedImpl = await import(mockedFixture); | |
@@ -625,18 +603,18 @@ test('defaultExports work with CJS mocks in both module systems', async (t) => { | |||
| 625 | 603 | assert.strictEqual(original.string, 'original cjs string'); | |
| 626 | 604 | t.mock.module(fixture, { defaultExport }); | |
| 627 | 605 | assert.strictEqual(require(fixture), defaultExport); | |
| 628 | - assert.strictEqual((await import(fixture)).default, defaultExport); | ||
| 606 | + assert.strictEqual((await import(pathToFileURL(fixture))).default, defaultExport); | ||
| 629 | 607 | }); | |
| 630 | 608 | ||
| 631 | 609 | test('defaultExports work with ESM mocks in both module systems', async (t) => { | |
| 632 | - const fixture = fixtures.path('module-mocking', 'basic-esm.mjs'); | ||
| 610 | + const fixture = fixtures.fileURL('module-mocking', 'basic-esm.mjs'); | ||
| 633 | 611 | const original = await import(fixture); | |
| 634 | 612 | const defaultExport = Symbol('default'); | |
| 635 | 613 | ||
| 636 | 614 | assert.strictEqual(original.string, 'original esm string'); | |
| 637 | - t.mock.module(fixture, { defaultExport }); | ||
| 615 | + t.mock.module(`${fixture}`, { defaultExport }); | ||
| 638 | 616 | assert.strictEqual((await import(fixture)).default, defaultExport); | |
| 639 | - assert.strictEqual(require(fixture), defaultExport); | ||
| 617 | + assert.strictEqual(require(fileURLToPath(fixture)), defaultExport); | ||
| 640 | 618 | }); | |
| 641 | 619 | ||
| 642 | 620 | test('wrong import syntax should throw error after module mocking.', async () => { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments