gitlab-org--gitlab-foss/spec/support/helpers/controller_helpers.rb

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)