test: cover vm.runInNewContext()
There is currently one if branch missing coverage in lib/vm.js. This commit adds a test to cover the case where the third argument to runInNewContext() is a string. PR-URL: https://github.com/nodejs/node/pull/16906 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
This commit is contained in:
parent
8e814fcf3a
commit
6f02da255f
@ -73,3 +73,23 @@ const fn = vm.runInNewContext('(function() { obj.p = {}; })', { obj: {} });
|
||||
global.gc();
|
||||
fn();
|
||||
// Should not crash
|
||||
|
||||
{
|
||||
// Verify that providing a custom filename as a string argument works.
|
||||
const code = 'throw new Error("foo");';
|
||||
const file = 'test_file.vm';
|
||||
|
||||
assert.throws(() => {
|
||||
vm.runInNewContext(code, {}, file);
|
||||
}, (err) => {
|
||||
const lines = err.stack.split('\n');
|
||||
|
||||
assert.strictEqual(lines[0].trim(), `${file}:1`);
|
||||
assert.strictEqual(lines[1].trim(), code);
|
||||
// Skip lines[2] and lines[3]. They're just a ^ and blank line.
|
||||
assert.strictEqual(lines[4].trim(), 'Error: foo');
|
||||
assert.strictEqual(lines[5].trim(), `at ${file}:1:7`);
|
||||
// The rest of the stack is uninteresting.
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user