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

26 lines
794 B
JavaScript
Raw Normal View History

// This tests that after failing to require an ESM that contains TLA,
// retrying with import() still works, and produces consistent results.
'use strict';
const common = require('../common');
const assert = require('assert');
let ns;
async function test() {
assert.throws(() => {
require('../fixtures/es-modules/tla/export-async.mjs');
}, {
code: 'ERR_REQUIRE_ASYNC_MODULE'
});
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');
}
// Run the test twice to check consistency after caching.
test().then(common.mustCall(test)).catch(common.mustNotCall());