Files
node/test/es-module/test-esm-loader-mock.mjs
Antoine du Hamel 987740399d tools: enforce trailing commas in test/es-module
PR-URL: https://github.com/nodejs/node/pull/60891
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
2025-12-03 14:18:40 +01:00

43 lines
1.2 KiB
JavaScript

import '../common/index.mjs';
import assert from 'node:assert/strict';
import { mock } from '../fixtures/es-module-loaders/mock.mjs';
mock('node:events', {
EventEmitter: 'This is mocked!',
});
// This resolves to node:events
// It is intercepted by mock-loader and doesn't return the normal value
assert.deepStrictEqual(await import('events'), Object.defineProperty({
__proto__: null,
EventEmitter: 'This is mocked!',
}, Symbol.toStringTag, {
enumerable: false,
value: 'Module',
}));
const mutator = mock('node:events', {
EventEmitter: 'This is mocked v2!',
});
// It is intercepted by mock-loader and doesn't return the normal value.
// This is resolved separately from the import above since the specifiers
// are different.
const mockedV2 = await import('node:events');
assert.deepStrictEqual(mockedV2, Object.defineProperty({
__proto__: null,
EventEmitter: 'This is mocked v2!',
}, Symbol.toStringTag, {
enumerable: false,
value: 'Module',
}));
mutator.EventEmitter = 'This is mocked v3!';
assert.deepStrictEqual(mockedV2, Object.defineProperty({
__proto__: null,
EventEmitter: 'This is mocked v3!',
}, Symbol.toStringTag, {
enumerable: false,
value: 'Module',
}));