Call conf.clamp for puma options to convert the default :environment Proc into a String (#2413)
* Call conf.clamp for puma options to convert the default :environment Proc into a String
This commit is contained in:
parent
6962d8cbcb
commit
48bb29ab79
|
@ -28,6 +28,7 @@ Capybara.register_server :puma do |app, port, host, **options|
|
||||||
options = default_options.merge(options)
|
options = default_options.merge(options)
|
||||||
|
|
||||||
conf = Rack::Handler::Puma.config(app, options)
|
conf = Rack::Handler::Puma.config(app, options)
|
||||||
|
conf.clamp
|
||||||
events = conf.options[:Silent] ? ::Puma::Events.strings : ::Puma::Events.stdio
|
events = conf.options[:Silent] ? ::Puma::Events.strings : ::Puma::Events.stdio
|
||||||
|
|
||||||
puma_ver = Gem::Version.new(Puma::Const::PUMA_VERSION)
|
puma_ver = Gem::Version.new(Puma::Const::PUMA_VERSION)
|
||||||
|
|
|
@ -99,6 +99,21 @@ RSpec.describe Capybara::Server do
|
||||||
expect(uri.to_hash).to include(scheme: 'http', host: server.host, port: server.port)
|
expect(uri.to_hash).to include(scheme: 'http', host: server.host, port: server.port)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should call #clamp on the puma configuration to ensure that environment is a string' do
|
||||||
|
Capybara.server = :puma
|
||||||
|
app_proc = proc { |_env| [200, {}, ['Hello Puma!']] }
|
||||||
|
require 'puma'
|
||||||
|
allow(Puma::Server).to receive(:new).and_wrap_original do |method, app, events, options|
|
||||||
|
# If #clamp is not called on the puma config then this will be a Proc
|
||||||
|
expect(options.fetch(:environment)).to eq 'development'
|
||||||
|
method.call(app, events, options)
|
||||||
|
end
|
||||||
|
described_class.new(app_proc).boot
|
||||||
|
expect(Puma::Server).to have_received(:new)
|
||||||
|
ensure
|
||||||
|
Capybara.server = :default
|
||||||
|
end
|
||||||
|
|
||||||
it 'should support SSL' do
|
it 'should support SSL' do
|
||||||
key = File.join(Dir.pwd, 'spec', 'fixtures', 'key.pem')
|
key = File.join(Dir.pwd, 'spec', 'fixtures', 'key.pem')
|
||||||
cert = File.join(Dir.pwd, 'spec', 'fixtures', 'certificate.pem')
|
cert = File.join(Dir.pwd, 'spec', 'fixtures', 'certificate.pem')
|
||||||
|
|
Loading…
Reference in New Issue