I have an app that uses subdomains to switch databases (multi-tenancy). I'm trying to use Capybara for integration testing, and it really relies a lot on subdomains.
My understanding was that setting Capybara.default_host=
to something would make all my requests come from this host. This doesn't seem to be the case. In this post, the author recommends just visiting the explicit url with a host, but this becomes a bit annoying if I'm navigating all over the place. I'd like to just set the host, then be able to use my rails paths as expected. Not sure what I'm doing wrong, but here's what I've tried:
# spec_helper.rb
RSpec.configure do |config|
config.before(:each, :type => :request) do
Capybara.default_host = 'http://app.mydomain.com'
end
end
# in some_integration_spec.rb
before do
puts "Capybara.default_host: #{Capybara.default_host}"
puts "some_app_url: #{some_app_url}"
end
This yields the output:
Capybara.default_host: http://app.mydomain.com
some_app_url: http://www.example.com/some_path
What am I doing wrong? default_host
appears to do nothing. As I say, I don't want to have to say visit(Capybara.default_host + some_app_path)
as that's a bit annoying each time. Why else does this default_host option exist?