Bring back Mongoid official support (#5568)

Devise hasn't been tested with Mongoid since Rails version 5, only 4.x was still running those tests.

This enables the tests again on all currently supported Rails versions, with their respective mongoid supported versions. There were a couple of minor tweaks to make it happen, namely:

* The way we were dropping the session before doesn't work in later versions so I changed back to calling `purge!` which appears to work fine. We used to call `Mongoid.purge!` but that changed in #4686.
* Some of the configs in the Rails test app were setting Active Record values when outside of the AR ORM tests, updated those to make sure they are not set when running mongoid ORM tests.
* The validations added to the shared admin code in tests were only checking for Rails version 5.1, but we need to use the same check for AR 5.1 that is used in code, otherwise it will try to use methods not available in mongoid there.
This commit is contained in:
Carlos Antonio da Silva
2025-10-31 11:16:02 -03:00
committed by GitHub
parent b76d18d277
commit dd7ee27f74
12 changed files with 88 additions and 30 deletions

View File

@@ -10,6 +10,6 @@ end
class ActiveSupport::TestCase
setup do
Mongoid.default_session.drop
Mongoid::Config.purge!
end
end

View File

@@ -40,8 +40,10 @@ module RailsApp
Devise::SessionsController.layout "application"
end
if Devise::Test.rails70?
config.active_record.legacy_connection_handling = false
if DEVISE_ORM == :active_record
if Devise::Test.rails70?
config.active_record.legacy_connection_handling = false
end
end
if Devise::Test.rails70_and_up?