Commit b29e7d7853f1835dbce26bb60747e5343bc5d609
1 parent
37e45606
Exists in
theme-brasil-digital-from-staging
and in
7 other branches
Add method to resend activation code
Showing
2 changed files
with
28 additions
and
0 deletions
Show diff stats
app/models/user.rb
... | ... | @@ -423,6 +423,12 @@ class User < ActiveRecord::Base |
423 | 423 | @is_password_required = false |
424 | 424 | end |
425 | 425 | |
426 | + def resend_activation_code | |
427 | + return if self.activated? | |
428 | + self.make_activation_code | |
429 | + self.deliver_activation_code | |
430 | + end | |
431 | + | |
426 | 432 | protected |
427 | 433 | |
428 | 434 | def normalize_email | ... | ... |
test/unit/user_test.rb
... | ... | @@ -756,6 +756,28 @@ class UserTest < ActiveSupport::TestCase |
756 | 756 | assert_equal 'quire', user.person.name |
757 | 757 | end |
758 | 758 | |
759 | + should 'deliver e-mail with activation code when resend was requested and user was not activated' do | |
760 | + user = new_user :email => 'pending@activation.com' | |
761 | + activation_code = user.activation_code | |
762 | + Delayed::Job.destroy_all | |
763 | + assert_difference 'ActionMailer::Base.deliveries.size', 1 do | |
764 | + user.resend_activation_code | |
765 | + process_delayed_job_queue | |
766 | + end | |
767 | + assert_not_equal activation_code, user.activation_code | |
768 | + assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s | |
769 | + end | |
770 | + | |
771 | + should 'not deliver e-mail with activation code when resend was requested and user was activated' do | |
772 | + user = new_user :email => 'pending@activation.com' | |
773 | + user.activate | |
774 | + Delayed::Job.destroy_all | |
775 | + assert_no_difference 'ActionMailer::Base.deliveries.size' do | |
776 | + user.resend_activation_code | |
777 | + process_delayed_job_queue | |
778 | + end | |
779 | + end | |
780 | + | |
759 | 781 | protected |
760 | 782 | def new_user(options = {}) |
761 | 783 | user = User.new({ :login => 'quire', :email => 'quire@example.com', :password => 'quire', :password_confirmation => 'quire' }.merge(options)) | ... | ... |