18 lines
617 B
Ruby
18 lines
617 B
Ruby
# frozen_string_literal: true
|
|
|
|
module ControllerHelpers
|
|
# It seems Devise::Test::ControllerHelpers#sign_in doesn't clear out the @current_user
|
|
# variable of the controller, hence it's not overwritten on retries.
|
|
# This should be fixed in Devise:
|
|
# - https://github.com/heartcombo/devise/issues/5190
|
|
# - https://github.com/heartcombo/devise/pull/5191
|
|
def sign_in(resource, deprecated = nil, scope: nil)
|
|
super
|
|
|
|
scope ||= Devise::Mapping.find_scope!(resource)
|
|
|
|
@controller.instance_variable_set(:"@current_#{scope}", nil)
|
|
end
|
|
end
|
|
|
|
Devise::Test::ControllerHelpers.prepend(ControllerHelpers)
|