Funkcja force_ssl w szynach 3.1 jest na stałe zakodowana, aby ignorować środowisko programistyczne, ale nie testować. To daje mi błędy przekierowania w moich (minimalistycznych) testach. Czy rozwiązaniem jest skonfigurowanie mojego serwera testowego tak, aby obsługiwał ssl (jeśli tak, to w jaki sposób?). Jeśli nie, czy powinienem małpować patch force_ssl, aby ignorować żądania w teście?W jaki sposób ludzie testują szyny 3.1 + force_ssl?
def force_ssl(options = {})
host = options.delete(:host)
before_filter(options) do
if !request.ssl? && !Rails.env.development?
redirect_options = {:protocol => 'https://', :status => :moved_permanently}
redirect_options.merge!(:host => host) if host
flash.keep
redirect_to redirect_options
end
end
end
EDIT Znaleźliśmy ten łańcuch, który potwierdza, inni, że to problem, ale nie wygląda jak tam jest zaangażowana fix jeszcze: https://github.com/rails/rails/pull/2630
to wydaje się lepszym podejściem – spike
Mam to na końcu z mojego pliku test_helper.rb, a wszystko jest dobrze działające specyfikacje ze sporkami. Ale samo uruchomienie rspec zdaje się ignorować to. Każdy pomysł, dlaczego? – Owen