Stop setting a default Capybara app host
It's intended not to be set if Capybara starts the app server itself. Base Rails-generated URLs off of Capybara.current_session.server_url instead.
This commit is contained in:
parent
49b531ba58
commit
d415eb4f6d
2
Gemfile
2
Gemfile
|
@ -9,7 +9,7 @@ gemspec
|
|||
# We need a newish Rake since Active Job sets its test tasks' descriptions.
|
||||
gem "rake", ">= 11.1"
|
||||
|
||||
gem "capybara", ">= 2.15"
|
||||
gem "capybara", ">= 3.26"
|
||||
gem "selenium-webdriver", ">= 3.141.592"
|
||||
|
||||
gem "rack-cache", "~> 1.2"
|
||||
|
|
|
@ -175,13 +175,13 @@ GEM
|
|||
bunny (2.13.0)
|
||||
amq-protocol (~> 2.3, >= 2.3.0)
|
||||
byebug (10.0.2)
|
||||
capybara (3.10.1)
|
||||
capybara (3.26.0)
|
||||
addressable
|
||||
mini_mime (>= 0.1.3)
|
||||
nokogiri (~> 1.8)
|
||||
rack (>= 1.6.0)
|
||||
rack-test (>= 0.6.3)
|
||||
regexp_parser (~> 1.2)
|
||||
regexp_parser (~> 1.5)
|
||||
xpath (~> 3.2)
|
||||
childprocess (1.0.1)
|
||||
rake (< 13.0)
|
||||
|
@ -388,7 +388,7 @@ GEM
|
|||
redis (4.1.1)
|
||||
redis-namespace (1.6.0)
|
||||
redis (>= 3.0.4)
|
||||
regexp_parser (1.3.0)
|
||||
regexp_parser (1.6.0)
|
||||
representable (3.0.4)
|
||||
declarative (< 0.1.0)
|
||||
declarative-option (< 0.2.0)
|
||||
|
@ -545,7 +545,7 @@ DEPENDENCIES
|
|||
blade-sauce_labs_plugin
|
||||
bootsnap (>= 1.4.4)
|
||||
byebug
|
||||
capybara (>= 2.15)
|
||||
capybara (>= 3.26)
|
||||
connection_pool
|
||||
dalli
|
||||
delayed_job
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
* System tests require Capybara 3.26 or newer.
|
||||
|
||||
*George Claghorn*
|
||||
|
||||
* Reduced log noise handling ActionController::RoutingErrors.
|
||||
|
||||
*Alberto Fernández-Capel*
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
gem "capybara", ">= 2.15"
|
||||
gem "capybara", ">= 3.26"
|
||||
|
||||
require "capybara/dsl"
|
||||
require "capybara/minitest"
|
||||
|
@ -119,17 +119,6 @@ module ActionDispatch
|
|||
def initialize(*) # :nodoc:
|
||||
super
|
||||
self.class.driver.use
|
||||
@proxy_route = if ActionDispatch.test_app
|
||||
Class.new do
|
||||
include ActionDispatch.test_app.routes.url_helpers
|
||||
|
||||
def url_options
|
||||
default_url_options.merge(host: Capybara.app_host)
|
||||
end
|
||||
end.new
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
|
||||
def self.start_application # :nodoc:
|
||||
|
@ -170,16 +159,33 @@ module ActionDispatch
|
|||
|
||||
driven_by :selenium
|
||||
|
||||
def method_missing(method, *args, &block)
|
||||
if @proxy_route.respond_to?(method)
|
||||
@proxy_route.send(method, *args, &block)
|
||||
private
|
||||
def url_helpers
|
||||
@url_helpers ||=
|
||||
if ActionDispatch.test_app
|
||||
Class.new do
|
||||
include ActionDispatch.test_app.routes.url_helpers
|
||||
|
||||
def url_options
|
||||
default_url_options.reverse_merge(host: Capybara.app_host || Capybara.current_session.server_url)
|
||||
end
|
||||
end.new
|
||||
end
|
||||
end
|
||||
|
||||
def method_missing(name, *args, &block)
|
||||
if url_helpers.respond_to?(name)
|
||||
url_helpers.public_send(name, *args, &block)
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
|
||||
ActiveSupport.run_load_hooks(:action_dispatch_system_test_case, self)
|
||||
def respond_to_missing?(name, include_private = false)
|
||||
url_helpers.respond_to?(name)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
SystemTestCase.start_application
|
||||
end
|
||||
ActiveSupport.run_load_hooks :action_dispatch_system_test_case, ActionDispatch::SystemTestCase
|
||||
ActionDispatch::SystemTestCase.start_application
|
||||
|
|
|
@ -4,15 +4,12 @@ module ActionDispatch
|
|||
module SystemTesting
|
||||
module TestHelpers
|
||||
module SetupAndTeardown # :nodoc:
|
||||
DEFAULT_HOST = "http://127.0.0.1"
|
||||
|
||||
def host!(host)
|
||||
Capybara.app_host = host
|
||||
end
|
||||
ActiveSupport::Deprecation.warn \
|
||||
"ActionDispatch::SystemTestCase#host! is deprecated with no replacement. " \
|
||||
"Set Capybara.app_host directly or rely on Capybara's default host."
|
||||
|
||||
def before_setup
|
||||
host! DEFAULT_HOST
|
||||
super
|
||||
Capybara.app_host = host
|
||||
end
|
||||
|
||||
def before_teardown
|
||||
|
|
|
@ -36,12 +36,10 @@ class SetDriverToSeleniumHeadlessFirefoxTest < DrivenBySeleniumWithHeadlessFiref
|
|||
end
|
||||
|
||||
class SetHostTest < DrivenByRackTest
|
||||
test "sets default host" do
|
||||
assert_equal "http://127.0.0.1", Capybara.app_host
|
||||
end
|
||||
|
||||
test "overrides host" do
|
||||
assert_deprecated do
|
||||
host! "http://example.com"
|
||||
end
|
||||
|
||||
assert_equal "http://example.com", Capybara.app_host
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue