diff --git a/lib/capybara/registrations/servers.rb b/lib/capybara/registrations/servers.rb index 34a40ef0..8b43f281 100644 --- a/lib/capybara/registrations/servers.rb +++ b/lib/capybara/registrations/servers.rb @@ -23,7 +23,10 @@ Capybara.register_server :puma do |app, port, host, **options| # If we just run the Puma Rack handler it installs signal handlers which prevent us from being able to interrupt tests. # Therefore construct and run the Server instance ourselves. # Rack::Handler::Puma.run(app, { Host: host, Port: port, Threads: "0:4", workers: 0, daemon: false }.merge(options)) - options = { Host: host, Port: port, Threads: '0:4', workers: 0, daemon: false, queue_requests: false }.merge(options) + default_options = { Host: host, Port: port, Threads: '0:4', workers: 0, daemon: false, queue_requests: false } + default_options[:queue_requests] = false if options[:Host]&.start_with?('ssl://') + options = default_options.merge(options) + conf = Rack::Handler::Puma.config(app, options) events = conf.options[:Silent] ? ::Puma::Events.strings : ::Puma::Events.stdio