From 4acf7bbcb0c4fee6f134ac6f2ddb1131197c97a1 Mon Sep 17 00:00:00 2001 From: Davide Icardi Date: Sat, 20 Nov 2021 22:50:58 +0100 Subject: [PATCH] simplify and fix how global are defined inside the sandbox (#63) * simplify and fix how global are defined inside the sandbox * 0.17.0 --- dist/src/PluginManager.js | 32 +++++++------- dist/src/PluginManager.js.map | 2 +- dist/src/PluginVm.js | 37 +++++++++++----- dist/src/PluginVm.js.map | 2 +- package-lock.json | 2 +- package.json | 2 +- src/PluginManager.ts | 32 +++++++------- src/PluginVm.ts | 80 ++++++++++++---------------------- test/PluginManagerSuite.js | 46 +++++++++++++++++-- test/PluginManagerSuite.js.map | 2 +- test/PluginManagerSuite.ts | 76 +++++++++++++++++++++++++++++--- 11 files changed, 208 insertions(+), 105 deletions(-) diff --git a/dist/src/PluginManager.js b/dist/src/PluginManager.js index 797e064..6646285 100644 --- a/dist/src/PluginManager.js +++ b/dist/src/PluginManager.js @@ -44,20 +44,22 @@ const debug = debug_1.default("live-plugin-manager"); const BASE_NPM_URL = "https://registry.npmjs.org"; const DefaultMainFile = "index.js"; const cwd = process.cwd(); -const DefaultOptions = { - cwd, - npmRegistryUrl: BASE_NPM_URL, - sandbox: {}, - npmRegistryConfig: {}, - npmInstallMode: "useCache", - pluginsPath: path.join(cwd, "plugin_packages"), - requireCoreModules: true, - hostRequire: require, - ignoredDependencies: [/^@types\//], - staticDependencies: {}, - lockWait: 120000, - lockStale: 180000, -}; +function createDefaultOptions() { + return { + cwd, + npmRegistryUrl: BASE_NPM_URL, + sandbox: {}, + npmRegistryConfig: {}, + npmInstallMode: "useCache", + pluginsPath: path.join(cwd, "plugin_packages"), + requireCoreModules: true, + hostRequire: require, + ignoredDependencies: [/^@types\//], + staticDependencies: {}, + lockWait: 120000, + lockStale: 180000, + }; +} const NPM_LATEST_TAG = "latest"; class PluginManager { constructor(options) { @@ -66,7 +68,7 @@ class PluginManager { if (options && !options.pluginsPath && options.cwd) { options.pluginsPath = path.join(options.cwd, "plugin_packages"); } - this.options = Object.assign(Object.assign({}, DefaultOptions), (options || {})); + this.options = Object.assign(Object.assign({}, createDefaultOptions()), (options || {})); this.vm = new PluginVm_1.PluginVm(this); this.npmRegistry = new NpmRegistryClient_1.NpmRegistryClient(this.options.npmRegistryUrl, this.options.npmRegistryConfig); this.githubRegistry = new GithubRegistryClient_1.GithubRegistryClient(this.options.githubAuthentication); diff --git a/dist/src/PluginManager.js.map b/dist/src/PluginManager.js.map index 6418b33..9d58e63 100644 --- a/dist/src/PluginManager.js.map +++ b/dist/src/PluginManager.js.map @@ -1 +1 @@ -{"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/PluginManager.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/PluginVm.js b/dist/src/PluginVm.js index 85d76e8..6d40fe1 100644 --- a/dist/src/PluginVm.js +++ b/dist/src/PluginVm.js @@ -129,8 +129,10 @@ class PluginVm { // https://60devs.com/executing-js-code-with-nodes-vm-module.html // I have also declared the exports variable to support the // `var app = exports = module.exports = {};` notation - const newLine = "\r\n"; - const iifeCode = `(function(exports){${newLine}${code}${newLine}}(module.exports));`; + const iifeCode = ` + (function(exports){ + ${code} + }(module.exports));`; const vmOptions = { displayErrors: true, filename: filePath }; const script = new vm.Script(iifeCode, vmOptions); script.runInContext(moduleContext, vmOptions); @@ -319,23 +321,38 @@ class PluginVm { } createGlobalSandbox(sandboxTemplate) { const srcGlobal = sandboxTemplate.global || global; - const srcEnv = sandboxTemplate.env || global.process.env; - const sandbox = Object.assign(Object.assign({}, srcGlobal), { - // https://stackoverflow.com/questions/59009214/some-properties-of-the-global-instance-are-not-copied-by-spread-operator-or-by-o - Array: srcGlobal.Array, ArrayBuffer: srcGlobal.ArrayBuffer, Boolean: srcGlobal.Boolean, Buffer: srcGlobal.Buffer, DataView: srcGlobal.DataView, Date: srcGlobal.Date, Error: srcGlobal.Error, EvalError: srcGlobal.EvalError, Float32Array: srcGlobal.Float32Array, Float64Array: srcGlobal.Float64Array, Function: srcGlobal.Function, Infinity: srcGlobal.Infinity, Int16Array: srcGlobal.Int16Array, Int32Array: srcGlobal.Int32Array, Int8Array: srcGlobal.Int8Array, Intl: srcGlobal.Intl, JSON: srcGlobal.JSON, Map: srcGlobal.Map, Math: srcGlobal.Math, NaN: srcGlobal.NaN, Number: srcGlobal.Number, Object: srcGlobal.Object, Promise: srcGlobal.Promise, RangeError: srcGlobal.RangeError, ReferenceError: srcGlobal.ReferenceError, RegExp: srcGlobal.RegExp, Set: srcGlobal.Set, String: srcGlobal.String, Symbol: srcGlobal.Symbol, SyntaxError: srcGlobal.SyntaxError, TypeError: srcGlobal.TypeError, URIError: srcGlobal.URIError, Uint16Array: srcGlobal.Uint16Array, Uint32Array: srcGlobal.Uint32Array, Uint8Array: srcGlobal.Uint8Array, Uint8ClampedArray: srcGlobal.Uint8ClampedArray, WeakMap: srcGlobal.WeakMap, WeakSet: srcGlobal.WeakSet }); + const sandbox = Object.assign({}, srcGlobal); // copy properties that are not copied automatically (don't know why..) // https://stackoverflow.com/questions/59009214/some-properties-of-the-global-instance-are-not-copied-by-spread-operator-or-by-o - if (!sandbox.process) { - sandbox.process = Object.create(srcGlobal.process || null); + // (some of these properties are Node.js specific, like Buffer) + // Function and Object should not be defined, otherwise we will have some unexpected behavior + // Somewhat related to https://github.com/nodejs/node/issues/28823 + if (!sandbox.Buffer && srcGlobal.Buffer) { + sandbox.Buffer = srcGlobal.Buffer; } + if (!sandbox.URL && global.URL) { + // cast to any because URL is not defined inside NodeJS.Global, I don't understand why ... + sandbox.URL = global.URL; + } + if (!sandbox.URLSearchParams && global.URLSearchParams) { + // cast to any because URLSearchParams is not defined inside NodeJS.Global, I don't understand why ... + sandbox.URLSearchParams = global.URLSearchParams; + } + if (!sandbox.process && global.process) { + sandbox.process = Object.assign({}, global.process); + } + if (sandbox.process) { + // override env to "unlink" from original process + const srcEnv = sandboxTemplate.env || global.process.env; + sandbox.process.env = Object.assign({}, srcEnv); // copy properties + } + // create global console if (!sandbox.console) { sandbox.console = new console.Console({ stdout: process.stdout, stderr: process.stderr }); } // override the global obj to "unlink" it from the original global obj // and make it unique for each sandbox sandbox.global = sandbox; - // override env to "unlink" from original process - sandbox.process.env = Object.assign({}, srcEnv); // copy properties return sandbox; } } diff --git a/dist/src/PluginVm.js.map b/dist/src/PluginVm.js.map index 2631c66..46df657 100644 --- a/dist/src/PluginVm.js.map +++ b/dist/src/PluginVm.js.map @@ -1 +1 @@ -{"version":3,"file":"PluginVm.js","sourceRoot":"","sources":["../../src/PluginVm.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"PluginVm.js","sourceRoot":"","sources":["../../src/PluginVm.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 9f28895..45ece42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "live-plugin-manager", - "version": "0.15.1", + "version": "0.17.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 8b20f09..c2e0c5d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "live-plugin-manager", - "version": "0.16.0", + "version": "0.17.0", "description": "Install and uninstall any node package at runtime from npm registry", "keywords": [ "plugin", diff --git a/src/PluginManager.ts b/src/PluginManager.ts index f052430..d068e7a 100644 --- a/src/PluginManager.ts +++ b/src/PluginManager.ts @@ -37,20 +37,22 @@ export interface PluginSandbox { } const cwd = process.cwd(); -const DefaultOptions: PluginManagerOptions = { - cwd, - npmRegistryUrl: BASE_NPM_URL, - sandbox: {}, - npmRegistryConfig: {}, - npmInstallMode: "useCache", - pluginsPath: path.join(cwd, "plugin_packages"), - requireCoreModules: true, - hostRequire: require, - ignoredDependencies: [/^@types\//], - staticDependencies: {}, - lockWait: 120000, - lockStale: 180000, -}; +function createDefaultOptions(): PluginManagerOptions { + return { + cwd, + npmRegistryUrl: BASE_NPM_URL, + sandbox: {}, + npmRegistryConfig: {}, + npmInstallMode: "useCache", + pluginsPath: path.join(cwd, "plugin_packages"), + requireCoreModules: true, + hostRequire: require, + ignoredDependencies: [/^@types\//], + staticDependencies: {}, + lockWait: 120000, + lockStale: 180000, + }; +} const NPM_LATEST_TAG = "latest"; @@ -71,7 +73,7 @@ export class PluginManager { options.pluginsPath = path.join(options.cwd, "plugin_packages"); } - this.options = {...DefaultOptions, ...(options || {})}; + this.options = {...createDefaultOptions(), ...(options || {})}; this.vm = new PluginVm(this); this.npmRegistry = new NpmRegistryClient(this.options.npmRegistryUrl, this.options.npmRegistryConfig); this.githubRegistry = new GithubRegistryClient(this.options.githubAuthentication); diff --git a/src/PluginVm.ts b/src/PluginVm.ts index d76b2e8..20270d8 100644 --- a/src/PluginVm.ts +++ b/src/PluginVm.ts @@ -124,8 +124,10 @@ export class PluginVm { // https://60devs.com/executing-js-code-with-nodes-vm-module.html // I have also declared the exports variable to support the // `var app = exports = module.exports = {};` notation - const newLine = "\r\n"; - const iifeCode = `(function(exports){${newLine}${code}${newLine}}(module.exports));`; + const iifeCode = ` + (function(exports){ + ${code} + }(module.exports));`; const vmOptions = { displayErrors: true, filename: filePath }; const script = new vm.Script(iifeCode, vmOptions); @@ -384,56 +386,35 @@ export class PluginVm { private createGlobalSandbox(sandboxTemplate: PluginSandbox): NodeJS.Global { const srcGlobal = sandboxTemplate.global || global; - const srcEnv = sandboxTemplate.env || global.process.env; - - const sandbox = { - ...srcGlobal, - // https://stackoverflow.com/questions/59009214/some-properties-of-the-global-instance-are-not-copied-by-spread-operator-or-by-o - Array: srcGlobal.Array, - ArrayBuffer: srcGlobal.ArrayBuffer, - Boolean: srcGlobal.Boolean, - Buffer: srcGlobal.Buffer, - DataView: srcGlobal.DataView, - Date: srcGlobal.Date, - Error: srcGlobal.Error, - EvalError: srcGlobal.EvalError, - Float32Array: srcGlobal.Float32Array, - Float64Array: srcGlobal.Float64Array, - Function: srcGlobal.Function, - Infinity: srcGlobal.Infinity, - Int16Array: srcGlobal.Int16Array, - Int32Array: srcGlobal.Int32Array, - Int8Array: srcGlobal.Int8Array, - Intl: srcGlobal.Intl, - JSON: srcGlobal.JSON, - Map: srcGlobal.Map, - Math: srcGlobal.Math, - NaN: srcGlobal.NaN, - Number: srcGlobal.Number, - Object: srcGlobal.Object, - Promise: srcGlobal.Promise, - RangeError: srcGlobal.RangeError, - ReferenceError: srcGlobal.ReferenceError, - RegExp: srcGlobal.RegExp, - Set: srcGlobal.Set, - String: srcGlobal.String, - Symbol: srcGlobal.Symbol, - SyntaxError: srcGlobal.SyntaxError, - TypeError: srcGlobal.TypeError, - URIError: srcGlobal.URIError, - Uint16Array: srcGlobal.Uint16Array, - Uint32Array: srcGlobal.Uint32Array, - Uint8Array: srcGlobal.Uint8Array, - Uint8ClampedArray: srcGlobal.Uint8ClampedArray, - WeakMap: srcGlobal.WeakMap, - WeakSet: srcGlobal.WeakSet, - }; + + const sandbox: NodeJS.Global = {...srcGlobal}; // copy properties that are not copied automatically (don't know why..) // https://stackoverflow.com/questions/59009214/some-properties-of-the-global-instance-are-not-copied-by-spread-operator-or-by-o - if (!sandbox.process) { - sandbox.process = Object.create(srcGlobal.process || null); + // (some of these properties are Node.js specific, like Buffer) + // Function and Object should not be defined, otherwise we will have some unexpected behavior + // Somewhat related to https://github.com/nodejs/node/issues/28823 + if (!sandbox.Buffer && srcGlobal.Buffer) { + sandbox.Buffer = srcGlobal.Buffer; + } + if (!(sandbox as any).URL && global.URL) { + // cast to any because URL is not defined inside NodeJS.Global, I don't understand why ... + (sandbox as any).URL = global.URL; + } + if (!(sandbox as any).URLSearchParams && global.URLSearchParams) { + // cast to any because URLSearchParams is not defined inside NodeJS.Global, I don't understand why ... + (sandbox as any).URLSearchParams = global.URLSearchParams; } + if (!sandbox.process && global.process) { + sandbox.process = {...global.process}; + } + if (sandbox.process) { + // override env to "unlink" from original process + const srcEnv = sandboxTemplate.env || global.process.env; + sandbox.process.env = {...srcEnv}; // copy properties + } + + // create global console if (!sandbox.console) { sandbox.console = new console.Console({ stdout: process.stdout, stderr: process.stderr }); } @@ -442,9 +423,6 @@ export class PluginVm { // and make it unique for each sandbox sandbox.global = sandbox; - // override env to "unlink" from original process - sandbox.process.env = {...srcEnv}; // copy properties - return sandbox; } } diff --git a/test/PluginManagerSuite.js b/test/PluginManagerSuite.js index ed168de..cd652d7 100644 --- a/test/PluginManagerSuite.js +++ b/test/PluginManagerSuite.js @@ -609,7 +609,6 @@ describe("PluginManager:", function () { chai_1.assert.equal(pluginInstance.myGlobals.setInterval, setInterval); chai_1.assert.equal(pluginInstance.myGlobals.setTimeout, setTimeout); chai_1.assert.equal(pluginInstance.myGlobals.Buffer, Buffer); - chai_1.assert.equal(pluginInstance.myGlobals.Function, Function); // NOTE: process and console are not the same but they should be available chai_1.assert.isDefined(pluginInstance.myGlobals.process); chai_1.assert.isDefined(pluginInstance.myGlobals.console); @@ -1151,6 +1150,11 @@ describe("PluginManager:", function () { }); describe("sandbox", function () { describe("given globals variables", function () { + it("should define the same globals", function () { + const code = `module.exports = global;`; + const result = manager.runScript(code); + chai_1.assert.equal(result.Buffer, Buffer); + }); it("unknown globals throw an exception", function () { const code = `module.exports = someUnknownGlobalVar;`; try { @@ -1188,6 +1192,40 @@ describe("PluginManager:", function () { chai_1.assert.isUndefined(global.SOME_OTHER_KEY, "Host should not inherit it"); }); }); + describe("given nodes types", function () { + it("should access Buffer", function () { + chai_1.assert.equal(manager.runScript(`module.exports = Buffer.from("hello", "utf-8").length`), 5); + chai_1.assert.equal(manager.runScript(`module.exports = Buffer.toString()`), Buffer.toString()); + }); + }); + describe("given js types", function () { + it("should access URL", function () { + chai_1.assert.equal(manager.runScript(`module.exports = new URL('/foo', 'https://example.org/').toString()`), 'https://example.org/foo'); + chai_1.assert.equal(manager.runScript(`module.exports = URL.toString()`), URL.toString()); + }); + it("should access Error", function () { + chai_1.assert.equal(manager.runScript(`module.exports = new Error("an error").message;`), "an error"); + }); + it("should access URLSearchParams", function () { + chai_1.assert.equal(manager.runScript(`module.exports = new URLSearchParams('user=abc&query=xyz').get('user');`), "abc"); + }); + it("should access Date", function () { + chai_1.assert.equal(manager.runScript(`module.exports = new Date(1635107735931).toString()`), new Date(1635107735931).toString()); + }); + it("should access Function", function () { + chai_1.assert.equal(manager.runScript(`module.exports = (function(){}).constructor === Function`), true); + }); + it("should access Object", function () { + const code = ` + module.exports = { + var1: new Object().constructor === Object, + var2: ({}).constructor === Object, + }`; + const result = manager.runScript(code); + chai_1.assert.isTrue(result.var1); + chai_1.assert.isTrue(result.var2); + }); + }); describe("given an environment variables", function () { beforeEach(function () { process.env.SOME_RANDOM_KEY = "test1"; @@ -1232,7 +1270,7 @@ describe("PluginManager:", function () { chai_1.assert.equal(result, "test1"); }); }); - it("A plugin share the same globals between modules", function () { + it("a plugin share the same globals between modules", function () { return __awaiter(this, void 0, void 0, function* () { const pluginSourcePath = path.join(__dirname, "my-plugin-env-global"); yield manager.installFromPath(pluginSourcePath); @@ -1240,13 +1278,13 @@ describe("PluginManager:", function () { chai_1.assert.equal(result, "Hello world!"); }); }); - it("plugins not share global and env with host, is isolated", function () { + it("a plugin doesn't share global and env with host, is isolated", function () { chai_1.assert.isUndefined(process.env.SOME_PLUGIN_KEY, "Initially host should not have it"); chai_1.assert.isUndefined(global.SOME_OTHER_KEY, "Initially host should not have it"); const code = ` global.SOME_OTHER_KEY = "test1"; process.env.SOME_PLUGIN_KEY = "test2"; - module.exports = SOME_OTHER_KEY + process.env.SOME_PLUGIN_KEY;`; + module.exports = global.SOME_OTHER_KEY + process.env.SOME_PLUGIN_KEY;`; const result = manager.runScript(code); chai_1.assert.equal(result, "test1test2"); chai_1.assert.isUndefined(process.env.SOME_PLUGIN_KEY, "Host should not inherit it"); diff --git a/test/PluginManagerSuite.js.map b/test/PluginManagerSuite.js.map index 77e9ed0..59cfbe0 100644 --- a/test/PluginManagerSuite.js.map +++ b/test/PluginManagerSuite.js.map @@ -1 +1 @@ -{"version":3,"file":"PluginManagerSuite.js","sourceRoot":"","sources":["PluginManagerSuite.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"PluginManagerSuite.js","sourceRoot":"","sources":["PluginManagerSuite.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/test/PluginManagerSuite.ts b/test/PluginManagerSuite.ts index ebb3f49..68c6369 100644 --- a/test/PluginManagerSuite.ts +++ b/test/PluginManagerSuite.ts @@ -607,7 +607,6 @@ describe("PluginManager:", function() { assert.equal(pluginInstance.myGlobals.setInterval, setInterval); assert.equal(pluginInstance.myGlobals.setTimeout, setTimeout); assert.equal(pluginInstance.myGlobals.Buffer, Buffer); - assert.equal(pluginInstance.myGlobals.Function, Function); // NOTE: process and console are not the same but they should be available assert.isDefined(pluginInstance.myGlobals.process); @@ -818,7 +817,7 @@ describe("PluginManager:", function() { // expected to fail because moment is missing... try { manager.require("my-plugin-with-dep"); - } catch (err) { + } catch (err: any) { assert.isTrue(err.message.includes("Cannot find module 'moment'")); return; } @@ -1172,6 +1171,12 @@ describe("PluginManager:", function() { describe("sandbox", function() { describe("given globals variables", function() { + it("should define the same globals", function() { + const code = `module.exports = global;`; + const result = manager.runScript(code); + assert.equal(result.Buffer, Buffer); + }); + it("unknown globals throw an exception", function() { const code = `module.exports = someUnknownGlobalVar;`; try { @@ -1219,6 +1224,67 @@ describe("PluginManager:", function() { }); }); + describe("given nodes types", function(){ + it("should access Buffer", function() { + assert.equal( + manager.runScript(`module.exports = Buffer.from("hello", "utf-8").length`), + 5 + ); + assert.equal( + manager.runScript(`module.exports = Buffer.toString()`), + Buffer.toString() + ); + }); + }); + + describe("given js types", function(){ + it("should access URL", function() { + assert.equal( + manager.runScript(`module.exports = new URL('/foo', 'https://example.org/').toString()`), + 'https://example.org/foo' + ); + assert.equal( + manager.runScript(`module.exports = URL.toString()`), + URL.toString() + ); + }); + it("should access Error", function() { + assert.equal( + manager.runScript(`module.exports = new Error("an error").message;`), + "an error" + ); + }); + it("should access URLSearchParams", function() { + assert.equal( + manager.runScript(`module.exports = new URLSearchParams('user=abc&query=xyz').get('user');`), + "abc" + ); + }); + it("should access Date", function() { + assert.equal( + manager.runScript(`module.exports = new Date(1635107735931).toString()`), + new Date(1635107735931).toString() + ); + }); + it("should access Function", function() { + assert.equal( + manager.runScript(`module.exports = (function(){}).constructor === Function`), + true + ); + }); + it("should access Object", function() { + const code = ` + module.exports = { + var1: new Object().constructor === Object, + var2: ({}).constructor === Object, + }`; + const result = manager.runScript(code); + + assert.isTrue(result.var1); + assert.isTrue(result.var2); + }); + }); + describe("given an environment variables", function() { beforeEach(function() { @@ -1278,7 +1344,7 @@ describe("PluginManager:", function() { assert.equal(result, "test1"); }); - it("A plugin share the same globals between modules", async function() { + it("a plugin share the same globals between modules", async function() { const pluginSourcePath = path.join(__dirname, "my-plugin-env-global"); await manager.installFromPath(pluginSourcePath); @@ -1287,14 +1353,14 @@ describe("PluginManager:", function() { assert.equal(result, "Hello world!"); }); - it("plugins not share global and env with host, is isolated", function() { + it("a plugin doesn't share global and env with host, is isolated", function() { assert.isUndefined(process.env.SOME_PLUGIN_KEY, "Initially host should not have it"); assert.isUndefined((global as any).SOME_OTHER_KEY, "Initially host should not have it"); const code = ` global.SOME_OTHER_KEY = "test1"; process.env.SOME_PLUGIN_KEY = "test2"; - module.exports = SOME_OTHER_KEY + process.env.SOME_PLUGIN_KEY;`; + module.exports = global.SOME_OTHER_KEY + process.env.SOME_PLUGIN_KEY;`; const result = manager.runScript(code); assert.equal(result, "test1test2");