Commit 2020d549dc9bad1221925e76f8fb20df3953da0d

Authored by Victor Costa
1 parent 6cee467c

Fix resend activation code for users

app/models/user.rb
@@ -425,7 +425,7 @@ class User < ActiveRecord::Base @@ -425,7 +425,7 @@ class User < ActiveRecord::Base
425 425
426 def resend_activation_code 426 def resend_activation_code
427 return if self.activated? 427 return if self.activated?
428 - self.make_activation_code 428 + update_attribute(:activation_code, make_activation_code)
429 self.deliver_activation_code 429 self.deliver_activation_code
430 end 430 end
431 431
lib/noosfero/api/session.rb
@@ -144,6 +144,7 @@ module Noosfero @@ -144,6 +144,7 @@ module Noosfero
144 requestors.each do |requestor| 144 requestors.each do |requestor|
145 requestor.user.resend_activation_code 145 requestor.user.resend_activation_code
146 end 146 end
  147 + present requestors.map(&:user), :with => Entities::UserLogin
147 end 148 end
148 149
149 params do 150 params do
test/unit/api/session_test.rb
@@ -218,7 +218,22 @@ class SessionTest < ActiveSupport::TestCase @@ -218,7 +218,22 @@ class SessionTest < ActiveSupport::TestCase
218 post "/api/v1/resend_activation_code?#{params.to_query}" 218 post "/api/v1/resend_activation_code?#{params.to_query}"
219 process_delayed_job_queue 219 process_delayed_job_queue
220 end 220 end
  221 + json = JSON.parse(last_response.body)
  222 + assert !json['users'].first['activated']
221 assert_equal user.email, ActionMailer::Base.deliveries.last['to'].to_s 223 assert_equal user.email, ActionMailer::Base.deliveries.last['to'].to_s
222 end 224 end
223 225
  226 + should 'not resend activation code for an active user' do
  227 + user = create_user
  228 + params = {:value => user.login}
  229 + user.activate
  230 + Delayed::Job.destroy_all
  231 + assert_no_difference 'ActionMailer::Base.deliveries.size' do
  232 + post "/api/v1/resend_activation_code?#{params.to_query}"
  233 + process_delayed_job_queue
  234 + end
  235 + json = JSON.parse(last_response.body)
  236 + assert json['users'].first['activated']
  237 + end
  238 +
224 end 239 end
test/unit/user_test.rb
@@ -764,7 +764,7 @@ class UserTest < ActiveSupport::TestCase @@ -764,7 +764,7 @@ class UserTest < ActiveSupport::TestCase
764 user.resend_activation_code 764 user.resend_activation_code
765 process_delayed_job_queue 765 process_delayed_job_queue
766 end 766 end
767 - assert_not_equal activation_code, user.activation_code 767 + assert_not_equal activation_code, user.reload.activation_code
768 assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s 768 assert_equal 'pending@activation.com', ActionMailer::Base.deliveries.last['to'].to_s
769 end 769 end
770 770