В настоящее время я работаю над приложением rails, которое имеет интересную настройку.
У нас есть два приложения, работающие на heroku.Одним из них является базовое приложение, которое работает в качестве обратного прокси-сервера, к нему подключено несколько доменов, и оно обратного прокси-сервера к нашему основному приложению, которое является приложением rails (это приложение выполняет поиск на основе хоста, а затем на предмет маршрутизации).
Причина этой настройки заключается в том, чтобы разрешить настраиваемым доменам указывать «страницы магазина» в основном приложении, после чего эти страницы магазина указывают на исходный домен для проверки.
Может быть, пример будетлучше объяснить это, 2 домена: seller.com platform.com
platform.com представляет хост приложения для основного приложения, seller.com - домен, маршрутизируемый через обратный прокси-сервер.На сайте seller.com вы выбираете свои продукты, а затем, в конечном итоге, проверяете на platform.com
Мы изо всех сил пытаемся найти способ протестировать этот сквозной поток в нашем основном приложении с использованием капибары с учетом нескольких доменов,Есть ли способ справиться с этим путем подмены обратного прокси или просто с помощью нескольких хостов?
Я попробовал конфигурацию капибары ниже
Capybara::Webkit.configure do |config|
config.allow_unknown_urls
config.ignore_ssl_errors
config.skip_image_loading
config.raise_javascript_errors = true
config.allow_url("lvh.me")
config.allow_url("*.lvh.me")
config.allow_url("testdomain.me")
end
Capybara.configure do |config|
config.always_include_port = true
config.javascript_driver = :webkit
config.default_max_wait_time = ENV.has_key?("CI") ? 60 : 10
config.app_host = "http://lvh.me"
end
RSpec.configure do |config|
config.include SubdomainHelper, type: :feature
config.before(type: :request) do
host! "lvh.me"
end
config.before(type: :feature) do
default_url_options[:host] = "http://lvh.me:#{Capybara.server_port}"
end
end
, а затем в тесте япробовал и visit "http://testdomain.me"
, и настройку хоста-капибары в качестве testdomain Capybara.config.host = "http://testdomain.me"
(не уверен, как этот подход будет работать в любом случае, потому что мне нужно, чтобы оба домена работали одновременно)