У меня есть приложение, которое использует субдомены для переключения баз данных (multi-tenancy). Я пытаюсь использовать 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?