mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 10:59:27 +00:00
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
|
// 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');
|
||
|
|
||
|
const { exportedReject } = require('../fixtures/es-modules/tla/export-promise.mjs');
|
||
|
|
||
|
assert.throws(() => {
|
||
|
require('../fixtures/es-modules/tla/await-export-promise.mjs');
|
||
|
}, {
|
||
|
code: 'ERR_REQUIRE_ASYNC_MODULE'
|
||
|
});
|
||
|
|
||
|
const interval = setInterval(() => {}, 1000); // Keep the test running, because await alone doesn't.
|
||
|
const err = new Error('rejected');
|
||
|
|
||
|
const p1 = import('../fixtures/es-modules/tla/await-export-promise.mjs')
|
||
|
.then(common.mustNotCall(), common.mustCall((e) => {
|
||
|
assert.strictEqual(e, err);
|
||
|
}));
|
||
|
|
||
|
const p2 = import('../fixtures/es-modules/tla/await-export-promise.mjs')
|
||
|
.then(common.mustNotCall(), common.mustCall((e) => {
|
||
|
assert.strictEqual(e, err);
|
||
|
}));
|
||
|
|
||
|
const p3 = import('../fixtures/es-modules/tla/await-export-promise.mjs')
|
||
|
.then(common.mustNotCall(), common.mustCall((e) => {
|
||
|
assert.strictEqual(e, err);
|
||
|
}));
|
||
|
|
||
|
exportedReject(err);
|
||
|
|
||
|
Promise.all([p1, p2, p3]).then(common.mustCall(() => { clearInterval(interval); }));
|