// This tests the behavior of ESM in require.cache when it's loaded from require. 'use strict'; require('../common'); const assert = require('node:assert'); const fixtures = require('../common/fixtures'); const filename = fixtures.path('es-modules', 'esm-in-require-cache', 'esm.mjs'); // Requiring ESM indirectly should not put it in the cache. let { name } = require('../fixtures/es-modules/esm-in-require-cache/import-esm.mjs'); assert.strictEqual(name, 'esm'); assert(!require.cache[filename]); ({ name } = require('../fixtures/es-modules/esm-in-require-cache/require-import-esm.cjs')); assert.strictEqual(name, 'esm'); assert(!require.cache[filename]); // After being required directly, it should be in the cache. ({ name } = require('../fixtures/es-modules/esm-in-require-cache/esm.mjs')); assert.strictEqual(name, 'esm'); assert(require.cache[filename]); delete require.cache[filename]; ({ name } = require('../fixtures/es-modules/esm-in-require-cache/import-require-esm.mjs')); assert.strictEqual(name, 'esm'); assert(require.cache[filename]);