Rails 5.1 requires ActionController::TestRequest to have a controller class
Pass it in as an anonymous class
This commit is contained in:
parent
36613b09d7
commit
7c4e8c8d17
|
@ -10,7 +10,13 @@ class RememberMeTest < Devise::IntegrationTest
|
|||
end
|
||||
|
||||
def generate_signed_cookie(raw_cookie)
|
||||
request = Devise.rails5? ? ActionDispatch::TestRequest.create : ActionDispatch::TestRequest.new
|
||||
request = if Devise.rails51?
|
||||
ActionController::TestRequest.create(Class.new) # needs a "controller class"
|
||||
elsif Devise.rails5?
|
||||
ActionController::TestRequest.create
|
||||
else
|
||||
ActionController::TestRequest.new
|
||||
end
|
||||
request.cookie_jar.signed['raw_cookie'] = raw_cookie
|
||||
request.cookie_jar['raw_cookie']
|
||||
end
|
||||
|
|
|
@ -3,7 +3,11 @@ unless defined?(DEVISE_ORM)
|
|||
end
|
||||
|
||||
module Devise
|
||||
# Detection for minor differences between Rails 4 and 5 in tests.
|
||||
# Detection for minor differences between Rails 4 and 5, and 5.1 in tests.
|
||||
def self.rails51?
|
||||
Rails.version.start_with? '5.1'
|
||||
end
|
||||
|
||||
def self.rails5?
|
||||
Rails.version.start_with? '5'
|
||||
end
|
||||
|
|
|
@ -163,7 +163,15 @@ class TestControllerHelpersTest < Devise::ControllerTestCase
|
|||
|
||||
test "creates a new warden proxy if the request object has changed" do
|
||||
old_warden_proxy = warden
|
||||
@request = Devise.rails5? ? ActionController::TestRequest.create : ActionController::TestRequest.new
|
||||
|
||||
@request = if Devise.rails51?
|
||||
ActionController::TestRequest.create(Class.new) # needs a "controller class"
|
||||
elsif Devise.rails5?
|
||||
ActionController::TestRequest.create
|
||||
else
|
||||
ActionController::TestRequest.new
|
||||
end
|
||||
|
||||
new_warden_proxy = warden
|
||||
|
||||
assert_not_equal old_warden_proxy, new_warden_proxy
|
||||
|
|
Loading…
Reference in New Issue