require 'capybara/rails' # # RackStackTest # # Tests that will use the entire rack stack from capybara. # class RackStackTest < ActionDispatch::IntegrationTest CONFIG_RU = (Rails.root + 'config.ru').to_s OUTER_APP = Rack::Builder.parse_file(CONFIG_RU).first # this is integration testing. So let's make the whole # rack stack available... Capybara.app = OUTER_APP Capybara.run_server = true Capybara.app_host = 'http://lvh.me:3003' Capybara.server_port = 3003 # WARNING: this creates an error in the test as soon as there # is an error in rails. Use the javascript driver for testing # error rendering Capybara.register_driver :rack_test do |app| Capybara::RackTest::Driver.new(app) end require 'capybara/poltergeist' Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app) end end