How to configure puma when starting Capybara?

I would like to configure puma when running Capybara tests. Changing the settings in .env, .env.test (I use dotenv ), or config / puma.rb has no effect.

Where can I change the configuration?

Rails 5.1, poltergeist 1.15.0, capybara 2.14.0, puma 2.8.2

+4
source share
1 answer

Typically, Capybara configures the server in the register_server block. Capybara Puma Server Definition Provides

Capybara.register_server :puma do |app, port, host|
  require 'rack/handler/puma'
  Rack::Handler::Puma.run(app, Host: host, Port: port, Threads: "0:4")
end

If you are using Rails 5.1 system testing, he added an abstraction layer on top of this with the server configuration performed in ActionDispatch :: SystemTesting :: Server #, which is defined as

def register
  Capybara.register_server :rails_puma do |app, port, host|
    Rack::Handler::Puma.run(app, Port: port, Threads: "0:1")
  end
end

Capybara.register_server :rails_puma do |app, port,host|
  Rack::Handler::Puma.run(app, ...custom settings...)
end

Capybara.register_server :my_custom_puma do |app, port, host|
  Rack::Handler::Puma.run(app, ...custom settings...)
end

Capybara.server = :my_custom_puma
+6

Source: https://habr.com/ru/post/1676967/


All Articles