diff --git a/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs b/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs
index 9ef67a5e5..be2ce4444 100644
--- a/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs
+++ b/src/Microsoft.DotNet.XHarness.CLI/CommandArguments/WASM/Arguments/JavaScriptEngineArgument.cs
@@ -42,5 +42,9 @@ internal enum JavaScriptEngine
/// SpiderMonkey
///
SpiderMonkey,
+ ///
+ /// NodeJS
+ ///
+ NodeJS,
}
}
diff --git a/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs b/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs
index df827d1a7..300d4b95b 100644
--- a/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs
+++ b/src/Microsoft.DotNet.XHarness.CLI/Commands/WASM/JS/WasmTestCommand.cs
@@ -58,11 +58,17 @@ protected override async Task InvokeInternal(ILogger logger)
JavaScriptEngine.V8 => "v8",
JavaScriptEngine.JavaScriptCore => "jsc",
JavaScriptEngine.SpiderMonkey => "sm",
+ JavaScriptEngine.NodeJS => "node",
_ => throw new ArgumentException("Engine not set")
};
- if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
- engineBinary = FindEngineInPath(engineBinary + ".cmd");
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) {
+ if (engineBinary.Equals("node"))
+ engineBinary = FindEngineInPath(engineBinary + ".exe"); // NodeJS ships as .exe rather than .cmd
+
+ else
+ engineBinary = FindEngineInPath(engineBinary + ".cmd");
+ }
var webServerCts = new CancellationTokenSource();
try