diff --git a/app/models/favorite_group.rb b/app/models/favorite_group.rb index 93c35ca43..cc010e62e 100644 --- a/app/models/favorite_group.rb +++ b/app/models/favorite_group.rb @@ -178,13 +178,6 @@ class FavoriteGroup < ApplicationRecord end end - def self.purge_post(post_id) - post_id = post_id.id if post_id.is_a?(Post) - for_post(post_id).find_each do |group| - group.remove!(post_id) - end - end - def remove!(post_id) with_lock do post_id = post_id.id if post_id.is_a?(Post) diff --git a/app/models/post.rb b/app/models/post.rb index 0643d3f9a..2439e6af0 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -1000,7 +1000,9 @@ class Post < ApplicationRecord end def remove_from_fav_groups - FavoriteGroup.delay.purge_post(id) + FavoriteGroup.for_post(id).find_each do |favgroup| + favgroup.remove!(id) + end end end diff --git a/test/unit/post_test.rb b/test/unit/post_test.rb index d80eeb346..63a9755f8 100644 --- a/test/unit/post_test.rb +++ b/test/unit/post_test.rb @@ -41,6 +41,7 @@ class PostTest < ActiveSupport::TestCase @upload = UploadService.new(FactoryBot.attributes_for(:jpg_upload)).start! @post = @upload.post Favorite.add(post: @post, user: @user) + create(:favorite_group).add!(@post.id) end teardown do @@ -63,6 +64,12 @@ class PostTest < ActiveSupport::TestCase assert_equal(0, Favorite.for_user(@user.id).where("post_id = ?", @post.id).count) end + should "remove all favgroups" do + assert_equal(1, FavoriteGroup.for_post(@post.id).count) + @post.expunge! + assert_equal(0, FavoriteGroup.for_post(@post.id).count) + end + should "decrement the uploader's upload count" do assert_difference("@post.uploader.reload.post_upload_count", -1) do @post.expunge!