У меня есть приложение, которое использует субдомены для переключения баз данных (мультитенантность). Я пытаюсь использовать Capybara для тестирования интеграции, и он действительно сильно зависит от поддоменов.
Насколько я понял, установка Capybara.default_host =
на что-то заставит все мои запросы исходить с этого хоста. Похоже, это не так. В этой публикации автор рекомендует просто посещать явный URL с хостом, но это становится немного раздражающим, если я перемещаюсь повсюду. Я хотел бы просто установить хост, а затем иметь возможность использовать мои рельсовые пути, как ожидалось. Не уверен, что делаю неправильно, но вот что я пробовал:
# 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
Это дает результат:
Capybara.default_host: http://app.mydomain.com
some_app_url: http://www.example.com/some_path
Что я делаю не так? default_host
, похоже, ничего не делает. Как я уже сказал, я не хочу говорить visit (Capybara.default_host + some_app_path)
, поскольку это каждый раз немного раздражает. Почему еще существует этот параметр default_host?