test: augment tests for SourceTextModule
Adds tests for a few error conditions. Also, adds tests to make sure the dynamically generated url is correct. PR-URL: https://github.com/nodejs/node/pull/23573 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> PR-URL: https://github.com/nodejs/node/pull/23572 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
parent
c596bcc4ff
commit
cac4909bf3
@ -50,3 +50,16 @@ const { SourceTextModule, createContext } = require('vm');
|
||||
await m.evaluate({ timeout: 500 })
|
||||
.then(() => assert(false), () => {});
|
||||
})();
|
||||
|
||||
// Check the generated url for each module
|
||||
(async () => {
|
||||
const context1 = createContext({ });
|
||||
const context2 = createContext({ });
|
||||
|
||||
const m1 = new SourceTextModule('1', { context: context1 });
|
||||
assert.strictEqual(m1.url, 'vm:module(0)');
|
||||
const m2 = new SourceTextModule('2', { context: context1 });
|
||||
assert.strictEqual(m2.url, 'vm:module(1)');
|
||||
const m3 = new SourceTextModule('3', { context: context2 });
|
||||
assert.strictEqual(m3.url, 'vm:module(0)');
|
||||
})();
|
||||
|
@ -43,7 +43,8 @@ async function checkArgType() {
|
||||
});
|
||||
|
||||
for (const invalidOptions of [
|
||||
0, 1, null, true, 'str', () => {}, { url: 0 }, Symbol.iterator
|
||||
0, 1, null, true, 'str', () => {}, { url: 0 }, Symbol.iterator,
|
||||
{ context: null }, { context: 'hucairz' }, { context: {} }
|
||||
]) {
|
||||
common.expectsError(() => {
|
||||
new SourceTextModule('', invalidOptions);
|
||||
@ -231,6 +232,17 @@ async function checkLinking() {
|
||||
});
|
||||
}
|
||||
|
||||
common.expectsError(() => {
|
||||
new SourceTextModule('', {
|
||||
importModuleDynamically: 'hucairz'
|
||||
});
|
||||
}, {
|
||||
code: 'ERR_INVALID_ARG_TYPE',
|
||||
type: TypeError,
|
||||
message: 'The "options.importModuleDynamically"' +
|
||||
' property must be of type function. Received type string'
|
||||
});
|
||||
|
||||
// Check the JavaScript engine deals with exceptions correctly
|
||||
async function checkExecution() {
|
||||
await (async () => {
|
||||
|
Loading…
x
Reference in New Issue
Block a user