From bb810cfb8f4868907c663fce7620b8da5ea78064 Mon Sep 17 00:00:00 2001 From: Vitaly Bezkrovny Date: Tue, 22 Oct 2013 00:43:56 +0300 Subject: [PATCH] * show message for last attempt, not for one-before-last one; * update test to check the message :invalid, :last_attempt, :locked --- lib/devise/models/lockable.rb | 2 +- test/models/lockable_test.rb | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/devise/models/lockable.rb b/lib/devise/models/lockable.rb index e5640c56..4073a6ae 100644 --- a/lib/devise/models/lockable.rb +++ b/lib/devise/models/lockable.rb @@ -128,7 +128,7 @@ module Devise end def last_attempt? - self.failed_attempts == self.class.maximum_attempts - 1 + self.failed_attempts == self.class.maximum_attempts end # Tells if the lock is expired if :time unlock strategy is active diff --git a/test/models/lockable_test.rb b/test/models/lockable_test.rb index ff29e8da..62bd2fa1 100644 --- a/test/models/lockable_test.rb +++ b/test/models/lockable_test.rb @@ -284,11 +284,14 @@ class LockableTest < ActiveSupport::TestCase swap Devise, :last_attempt_warning => :true do swap Devise, :lock_strategy => :failed_attempts do user = create_user - user.failed_attempts = Devise.maximum_attempts - 2 + user.failed_attempts = Devise.maximum_attempts - 1 assert_equal :invalid, user.unauthenticated_message - user.failed_attempts = Devise.maximum_attempts - 1 + user.failed_attempts = Devise.maximum_attempts assert_equal :last_attempt, user.unauthenticated_message + + user.failed_attempts = Devise.maximum_attempts + 1 + assert_equal :locked, user.unauthenticated_message end end end