From 3b882dadac9d1efc74b456e70670561c16ec58b1 Mon Sep 17 00:00:00 2001 From: Tim Scott Date: Wed, 19 Nov 2014 16:48:35 -0600 Subject: [PATCH] Made ensure valid a named param for confirm!, and added a test. --- lib/devise/models/confirmable.rb | 2 +- test/models/confirmable_test.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/devise/models/confirmable.rb b/lib/devise/models/confirmable.rb index f323d454..e6df31ac 100644 --- a/lib/devise/models/confirmable.rb +++ b/lib/devise/models/confirmable.rb @@ -56,7 +56,7 @@ module Devise # Confirm a user by setting it's confirmed_at to actual time. If the user # is already confirmed, add an error to email field. If the user is invalid # add errors - def confirm!(ensure_valid=false) + def confirm!(ensure_valid: false) pending_any_confirmation do if confirmation_period_expired? self.errors.add(:email, :confirmation_period_expired, diff --git a/test/models/confirmable_test.rb b/test/models/confirmable_test.rb index 0c2c56ff..10cd160d 100644 --- a/test/models/confirmable_test.rb +++ b/test/models/confirmable_test.rb @@ -315,6 +315,12 @@ class ConfirmableTest < ActiveSupport::TestCase assert_not user.confirm! assert_equal user.username, old end + + test 'should always perform validations upon confirm when ensure valid true' do + admin = create_admin + admin.stubs(:valid?).returns(false) + assert_not admin.confirm!(ensure_valid: true) + end end class ReconfirmableTest < ActiveSupport::TestCase