Skip to content

Commit 5ef6d50

Browse files
committed
Skip renderer kill fallback for remote URLs
1 parent 3d328f8 commit 5ef6d50

2 files changed

Lines changed: 25 additions & 1 deletion

File tree

react_on_rails/lib/react_on_rails/dev/server_manager.rb

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,17 +77,28 @@ def killable_ports
7777

7878
def default_killable_ports
7979
ports = [3000, 3001]
80-
ports << configured_renderer_port_for_kill if pro_renderer_active?
80+
if pro_renderer_active?
81+
renderer_port = configured_renderer_port_for_kill
82+
ports << renderer_port if renderer_port
83+
end
8184
ports
8285
end
8386

8487
def configured_renderer_port_for_kill
8588
raw_port = ENV.fetch("RENDERER_PORT", nil)
8689
return raw_port.strip.to_i if valid_port_string?(raw_port)
90+
return nil if remote_renderer_url_configured?
8791

8892
3800
8993
end
9094

95+
def remote_renderer_url_configured?
96+
%w[REACT_RENDERER_URL RENDERER_URL].any? do |var|
97+
url = ENV.fetch(var, nil)
98+
!url.nil? && !url.strip.empty? && !localhost_renderer_url?(url)
99+
end
100+
end
101+
91102
def development_processes
92103
{
93104
"rails" => "Rails server",

react_on_rails/spec/react_on_rails/dev/server_manager_spec.rb

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,19 @@ def mock_port_selector_defaults
12141214

12151215
described_class.kill_processes
12161216
end
1217+
1218+
it "does not target the default renderer port for a remote renderer URL" do
1219+
ENV["REACT_RENDERER_URL"] = "https://renderer.internal:3800"
1220+
allow(ReactOnRails::Dev::PortSelector).to receive(:base_port_hash).and_return(nil)
1221+
# No pattern-based processes so kill_port_processes runs.
1222+
allow(Open3).to receive(:capture2).with("pgrep", any_args).and_return(["", nil])
1223+
1224+
allow(Open3).to receive(:capture2).with("lsof", "-ti", ":3000", err: File::NULL).and_return(["", nil])
1225+
allow(Open3).to receive(:capture2).with("lsof", "-ti", ":3001", err: File::NULL).and_return(["", nil])
1226+
expect(Open3).not_to receive(:capture2).with("lsof", "-ti", ":3800", err: File::NULL)
1227+
1228+
described_class.kill_processes
1229+
end
12171230
end
12181231

12191232
describe ".find_port_pids" do

0 commit comments

Comments
 (0)