Капибара тестирует домены обратного прокси - PullRequest
0 голосов
/ 27 февраля 2019

В настоящее время я работаю над приложением 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" (не уверен, как этот подход будет работать в любом случае, потому что мне нужно, чтобы оба домена работали одновременно)

1 Ответ

0 голосов
/ 28 февраля 2019

Все домены и субдомены, которые вы используете, должны быть настроены для разрешения IP-адресов, по которым ваш AUT доступен.Обычно это включает редактирование /etc/hosts или настройку локального DNS-сервера для сообщения правильного IP-адреса.

...