You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I just updated my app to rails 8 with the newest version of Devise and hotwire turbo. When running tests with Capybara/Rspec I'm seeing certain form submissions fail with a 500 error from inside of Devise. This behavior seems to be only in the test environment.
lib/devise.rb:496
# A method used internally to complete the setup of warden manager after routes are loaded.
# See lib/devise/rails/routes.rb - ActionDispatch::Routing::RouteSet#finalize_with_devise!
def self.configure_warden! #:nodoc:
@@warden_configured ||= begin
warden_config.failure_app = Devise::Delegator.new
warden_config.default_scope = Devise.default_scope
warden_config.intercept_401 = false
Devise.mappings.each_value do |mapping|
warden_config.scope_defaults mapping.name, strategies: mapping.strategies
warden_config.serialize_into_session(mapping.name) do |record|
mapping.to.serialize_into_session(record)
end
warden_config.serialize_from_session(mapping.name) do |args|
mapping.to.serialize_from_session(*args)
end
end
@@warden_config_blocks.map { |block| block.call Devise.warden_config }
true
end
end
When mapping.to.serialize_from_session(*args) is called I get the error "wrong number of arguments (given 10, expected 2)".
I have not been able to find a pattern between tests that pass and tests that cause this behavior except that I can see the data is different.
What could be causing this? Looks like a hash composed of a full user record instead of just an id and token.
I understand there have been issues with Devise.mapping with the newest version of rails, I've tried adding in the recommended initializer file from here, but it had no effect:
Environment
Current behavior
I just updated my app to rails 8 with the newest version of Devise and hotwire turbo. When running tests with Capybara/Rspec I'm seeing certain form submissions fail with a 500 error from inside of Devise. This behavior seems to be only in the test environment.
lib/devise.rb:496
When
mapping.to.serialize_from_session(*args)
is called I get the error "wrong number of arguments (given 10, expected 2)".I have not been able to find a pattern between tests that pass and tests that cause this behavior except that I can see the data is different.
On a passing test args looks like this:
But on a failing test args looks like this:
What could be causing this? Looks like a hash composed of a full user record instead of just an id and token.
I understand there have been issues with Devise.mapping with the newest version of rails, I've tried adding in the recommended initializer file from here, but it had no effect:
#5728 (comment)
The text was updated successfully, but these errors were encountered: