From cc6483cfee1adc2e90e59677d8cc833291c36af5 Mon Sep 17 00:00:00 2001 From: Jean Boussier Date: Sat, 16 Sep 2023 18:56:31 +0200 Subject: [PATCH] Handle Bun priting loaded env variables on STDERR Fix: https://github.com/rails/execjs/issues/130 --- lib/execjs/external_runtime.rb | 2 +- test/test_execjs.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/execjs/external_runtime.rb b/lib/execjs/external_runtime.rb index 798d809..ffd7511 100644 --- a/lib/execjs/external_runtime.rb +++ b/lib/execjs/external_runtime.rb @@ -207,7 +207,7 @@ def exec_runtime(filename) end else def exec_runtime(filename) - io = IO.popen(binary.split(' ') << filename, **(@popen_options.merge({err: [:child, :out]}))) + io = IO.popen(binary.split(' ') << filename, **@popen_options) output = io.read io.close diff --git a/test/test_execjs.rb b/test/test_execjs.rb index a2b698d..4b0976f 100644 --- a/test/test_execjs.rb +++ b/test/test_execjs.rb @@ -56,6 +56,16 @@ def test_call_with_complex_properties assert_equal 2, context.call("(function(bar) { return foo + bar })", 1) end + def test_call_with_env_file + Dir.mktmpdir do |dir| + Dir.chdir(dir) do + # Bun prints on STDOUT when loading .env files + File.write(".env", "FOO=BAR") + assert_equal 2, ExecJS.eval("1 + 1") + end + end + end + def test_call_with_this # Known bug: https://github.com/cowboyd/therubyrhino/issues/39 skip if ExecJS.runtime.is_a?(ExecJS::RubyRhinoRuntime)