diff --git a/lib/devise/models/recoverable.rb b/lib/devise/models/recoverable.rb index af5d2395..2a6106e3 100644 --- a/lib/devise/models/recoverable.rb +++ b/lib/devise/models/recoverable.rb @@ -24,6 +24,10 @@ module Devise module Recoverable extend ActiveSupport::Concern + def self.required_fields(klass) + [:reset_password_sent_at, :reset_password_token] + end + # Update password saving the record and clearing token. Returns true if # the passwords are valid and the record was saved, false otherwise. def reset_password!(new_password, new_password_confirmation) diff --git a/test/models/recoverable_test.rb b/test/models/recoverable_test.rb index 3e96e055..8be770cb 100644 --- a/test/models/recoverable_test.rb +++ b/test/models/recoverable_test.rb @@ -195,4 +195,11 @@ class RecoverableTest < ActiveSupport::TestCase assert_equal "has expired, please request a new one", reset_password_user.errors[:reset_password_token].join end end -end + + test 'required_fields should contain the fields that Devise uses' do + assert_equal Devise::Models::Recoverable.required_fields(User), [ + :reset_password_sent_at, + :reset_password_token + ] + end +end \ No newline at end of file