Skip to content
Permalink
Browse files

test: cover vm with negative tests

Test the impossibility of creating
an abstract instance of the Module.
Test of SyntheticModule to throw exception
if invalid params in constructor

PR-URL: #31028
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: David Carlier <devnexen@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yongsheng Zhang <zyszys98@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
  • Loading branch information
andrewkuzmenko authored and BridgeAR committed Dec 18, 2019
1 parent 3c9e435 commit e5980a106cbde074ce1e41ad2f6a5334f4e0b432
Showing with 41 additions and 1 deletion.
  1. +41 −1 test/parallel/test-vm-module-basic.js
@@ -4,7 +4,12 @@

const common = require('../common');
const assert = require('assert');
const { SourceTextModule, SyntheticModule, createContext } = require('vm');
const {
Module,
SourceTextModule,
SyntheticModule,
createContext
} = require('vm');
const util = require('util');

(async function test1() {
@@ -107,3 +112,38 @@ const util = require('util');
assert.notStrictEqual(dep, undefined);
assert.strictEqual(dep, m.dependencySpecifiers);
}

// Check the impossibility of creating an abstract instance of the Module.
{
common.expectsError(() => new Module(), {
message: 'Module is not a constructor',
type: TypeError
});
}

// Check to throws invalid exportNames
{
common.expectsError(() => new SyntheticModule(undefined, () => {}, {}), {
message: 'The "exportNames" argument must be an Array of strings.' +
' Received undefined',
type: TypeError
});
}

// Check to throws invalid evaluateCallback
{
common.expectsError(() => new SyntheticModule([], undefined, {}), {
message: 'The "evaluateCallback" argument must be of type function.' +
' Received undefined',
type: TypeError
});
}

// Check to throws invalid options
{
common.expectsError(() => new SyntheticModule([], () => {}, null), {
message: 'The "options" argument must be of type object.' +
' Received null',
type: TypeError
});
}

0 comments on commit e5980a1

Please sign in to comment.
You can’t perform that action at this time.