node/test/es-module/test-require-module-tla-retry-import-2.js

27 lines
799 B
JavaScript
Raw Normal View History

// This tests that after loading a ESM with import() and then retrying
// with require(), it errors as expected, and produces consistent results.
'use strict';
const common = require('../common');
const assert = require('assert');
let ns;
async function test() {
const newNs = await import('../fixtures/es-modules/tla/export-async.mjs');
if (ns === undefined) {
ns = newNs;
} else {
// Check that re-evalaution is returning the same namespace.
assert.strictEqual(ns, newNs);
}
assert.strictEqual(ns.hello, 'world');
assert.throws(() => {
require('../fixtures/es-modules/tla/export-async.mjs');
}, {
code: 'ERR_REQUIRE_ASYNC_MODULE'
});
}
// Run the test twice to check consistency after caching.
test().then(common.mustCall(test)).catch(common.mustNotCall());