blob: d3365ce14f80b616b20ab80659e4b3fc6410b48b [file] [edit]
// 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]);