From b29e7d7853f1835dbce26bb60747e5343bc5d609 Mon Sep 17 00:00:00 2001 From: Victor Costa Date: Wed, 18 Nov 2015 10:53:42 -0300 Subject: [PATCH] Add method to resend activation code --- app/models/user.rb | 6 ++++++ test/unit/user_test.rb | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 0 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index 7d2b2cb..251b627 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -423,6 +423,12 @@ class User < ActiveRecord::Base @is_password_required = false end + def resend_activation_code + return if self.activated? + self.make_activation_code + self.deliver_activation_code + end + protected def normalize_email diff --git a/test/unit/user_test.rb b/test/unit/user_test.rb index 7e60c9e..7aadb76 100644 --- a/test/unit/user_test.rb +++ b/test/unit/user_test.rb @@ -756,6 +756,28 @@ class UserTest < ActiveSupport::TestCase assert_equal 'quire', user.person.name end + should 'deliver e-mail with activation code when resend was requested and user was not activated' do + user = new_user :email => 'pending@activation.com' + activation_code = user.activation_code + Delayed::Job.destroy_all + assert_difference 'ActionMailer::Base.deliveries.size', 1 do + user.resend_activation_code + process_delayed_job_queue + end + assert_not_equal activation_code, user.activation_code + assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s + end + + should 'not deliver e-mail with activation code when resend was requested and user was activated' do + user = new_user :email => 'pending@activation.com' + user.activate + Delayed::Job.destroy_all + assert_no_difference 'ActionMailer::Base.deliveries.size' do + user.resend_activation_code + process_delayed_job_queue + end + end + protected def new_user(options = {}) user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) -- libgit2 0.21.2