public void JsEnvCreateFailedException() { var loader = new TxtLoader(); loader.AddMockFileContent("puerts/polyfill.mjs", @" throw new Error('expected exception') "); JsEnv env = null; var oldEnvList = JsEnv.jsEnvs; JsEnv.jsEnvs = new System.Collections.Generic.List <JsEnv>(); try { env = new JsEnv(loader); } catch (Exception ex) { Assert.True(ex.Message.Contains("expected exception")); Assert.True(env == null); Assert.True(JsEnv.jsEnvs.Count == 1); Assert.True(JsEnv.jsEnvs[0] == null); JsEnv.jsEnvs = oldEnvList; return; } JsEnv.jsEnvs = oldEnvList; Assert.True(false); }
public void ESModuleEvaluateError() { var loader = new TxtLoader(); loader.AddMockFileContent("whatever.mjs", @"var obj = {}; obj.func();"); var jsEnv = new JsEnv(loader); Assert.Catch(() => { jsEnv.ExecuteModule("whatever.mjs"); }); jsEnv.Dispose(); }
public void ESModuleCompileError() { var loader = new TxtLoader(); loader.AddMockFileContent("whatever.mjs", @"export delete;"); var jsEnv = new JsEnv(loader); Assert.Catch(() => { jsEnv.ExecuteModule("whatever.mjs"); }); jsEnv.Dispose(); }
public void ESModuleImportCSharp() { var loader = new TxtLoader(); loader.AddMockFileContent("whatever.mjs", @" import csharp from 'csharp'; const func = function() { return csharp.System.String.Join(' ', 'hello', 'world') } export { func }; "); var jsEnv = new JsEnv(loader); Func <string> func = jsEnv.ExecuteModule <Func <string> >("whatever.mjs", "func"); Assert.True(func() == "hello world"); jsEnv.Dispose(); }
public void ESModuleImportCSharpNamespace() { var loader = new TxtLoader(); loader.AddMockFileContent("whatever.mjs", @" import csharp from 'csharp'; const func = function() { return csharp.System.String.Join(' ', 'hello', 'world') } export { func }; "); var jsEnv = new JsEnv(loader); var ns = jsEnv.ExecuteModule <JSObject>("whatever.mjs"); Assert.True(ns != null); Assert.True(ns.GetType() == typeof(JSObject)); jsEnv.Dispose(); }
public void ESModuleImportCSharp() { var loader = new TxtLoader(); loader.AddMockFileContent("whatever.mjs", @"import csharp from 'csharp'; csharp.System.Console.WriteLine('ESModuleImportCSharp')"); var jsEnv = new JsEnv(loader); try { jsEnv.ExecuteModule("whatever.mjs"); } catch (Exception e) { Assert.True(false); } jsEnv.Dispose(); }