J'ai une application qui utilise les sous-domaines pour changer de base de données (multi-tenant). Je suis en train d'utiliser le Capybara pour les tests d'intégration, et c'est vraiment s'appuie beaucoup sur des sous-domaines.
Ma compréhension était que le paramètre Capybara.default_host=
de quelque chose serait de faire toutes mes demandes proviennent de cet hôte. Cela ne semble pas être le cas. Dans ce post, l'auteur recommande de visiter l'url explicite avec un hôte, mais cela devient un peu gênant si je suis la navigation de tous sur la place. Je voudrais juste mettre l'hôte, puis être en mesure d'utiliser mon rails de chemins comme prévu. Pas sûr de ce que je fais mal, mais voici ce que j'ai essayé:
# 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
Cela donne le résultat:
Capybara.default_host: http://app.mydomain.com
some_app_url: http://www.example.com/some_path
Ce que je fais mal? default_host
semble ne rien faire. Comme je l'ai dit, je ne veux pas avoir à dire visit(Capybara.default_host + some_app_path)
que c'est un peu gênant à chaque fois. Sinon, pourquoi est-ce à default_host option existe pas?