when deleting users, make the favorites removal asynchronoous
This commit is contained in:
@@ -3,6 +3,13 @@ class UserDeletion
|
|||||||
|
|
||||||
attr_reader :user, :password
|
attr_reader :user, :password
|
||||||
|
|
||||||
|
def self.remove_favorites_for(user_name, user_id)
|
||||||
|
user = User.find(user_id)
|
||||||
|
Post.tag_match("fav:#{user_name}").find_each do |post|
|
||||||
|
Favorite.remove(post, user)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def initialize(user, password)
|
def initialize(user, password)
|
||||||
@user = user
|
@user = user
|
||||||
@password = password
|
@password = password
|
||||||
@@ -49,9 +56,7 @@ private
|
|||||||
end
|
end
|
||||||
|
|
||||||
def remove_favorites
|
def remove_favorites
|
||||||
Post.tag_match("fav:#{user.name}").find_each do |post|
|
UserDeletion.delay.remove_favorites_for(user.name, user.id)
|
||||||
Favorite.remove(post, user)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def rename
|
def rename
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ class UserDeletionTest < ActiveSupport::TestCase
|
|||||||
context "an invalid user deletion" do
|
context "an invalid user deletion" do
|
||||||
context "for an invalid password" do
|
context "for an invalid password" do
|
||||||
setup do
|
setup do
|
||||||
|
Delayed::Worker.delay_jobs = false
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
CurrentUser.user = @user
|
CurrentUser.user = @user
|
||||||
CurrentUser.ip_addr = "127.0.0.1"
|
CurrentUser.ip_addr = "127.0.0.1"
|
||||||
@@ -19,6 +20,7 @@ class UserDeletionTest < ActiveSupport::TestCase
|
|||||||
|
|
||||||
context "for an admin" do
|
context "for an admin" do
|
||||||
setup do
|
setup do
|
||||||
|
Delayed::Worker.delay_jobs = false
|
||||||
@user = FactoryGirl.create(:admin_user)
|
@user = FactoryGirl.create(:admin_user)
|
||||||
CurrentUser.user = @user
|
CurrentUser.user = @user
|
||||||
CurrentUser.ip_addr = "127.0.0.1"
|
CurrentUser.ip_addr = "127.0.0.1"
|
||||||
@@ -35,6 +37,8 @@ class UserDeletionTest < ActiveSupport::TestCase
|
|||||||
|
|
||||||
context "a valid user deletion" do
|
context "a valid user deletion" do
|
||||||
setup do
|
setup do
|
||||||
|
Delayed::Worker.delay_jobs = false
|
||||||
|
|
||||||
@user = FactoryGirl.create(:user)
|
@user = FactoryGirl.create(:user)
|
||||||
CurrentUser.user = @user
|
CurrentUser.user = @user
|
||||||
CurrentUser.ip_addr = "127.0.0.1"
|
CurrentUser.ip_addr = "127.0.0.1"
|
||||||
|
|||||||
Reference in New Issue
Block a user