1import '../common/index.mjs'; 2import assert from 'node:assert/strict'; 3import { mock } from '../fixtures/es-module-loaders/mock.mjs'; 4 5mock('node:events', { 6 EventEmitter: 'This is mocked!' 7}); 8 9// This resolves to node:events 10// It is intercepted by mock-loader and doesn't return the normal value 11assert.deepStrictEqual(await import('events'), Object.defineProperty({ 12 __proto__: null, 13 EventEmitter: 'This is mocked!' 14}, Symbol.toStringTag, { 15 enumerable: false, 16 value: 'Module' 17})); 18 19const mutator = mock('node:events', { 20 EventEmitter: 'This is mocked v2!' 21}); 22 23// It is intercepted by mock-loader and doesn't return the normal value. 24// This is resolved separately from the import above since the specifiers 25// are different. 26const mockedV2 = await import('node:events'); 27assert.deepStrictEqual(mockedV2, Object.defineProperty({ 28 __proto__: null, 29 EventEmitter: 'This is mocked v2!' 30}, Symbol.toStringTag, { 31 enumerable: false, 32 value: 'Module' 33})); 34 35mutator.EventEmitter = 'This is mocked v3!'; 36assert.deepStrictEqual(mockedV2, Object.defineProperty({ 37 __proto__: null, 38 EventEmitter: 'This is mocked v3!' 39}, Symbol.toStringTag, { 40 enumerable: false, 41 value: 'Module' 42})); 43