[PostEvent] Fix unflag event on approve not being created

This commit is contained in:
Earlopain 2022-05-22 14:47:11 +02:00
parent 03615286cf
commit 2b079eabb9
No known key found for this signature in database
GPG Key ID: 6CFB948E15246897
2 changed files with 18 additions and 2 deletions

View File

@ -329,10 +329,12 @@ class Post < ApplicationRecord
def approve!(approver = CurrentUser.user, force: false)
raise ApprovalError.new("Post already approved.") if self.approver != nil && !force
PostEvent.add(id, CurrentUser.user, :approved)
approv = approvals.create(user: approver)
flags.each(&:resolve!)
if flags.unresolved.any?
unflag!
end
PostEvent.add(id, CurrentUser.user, :approved)
update(approver: approver, is_flagged: false, is_pending: false, is_deleted: false)
approv
end

View File

@ -95,6 +95,20 @@ class PostEventTest < ActiveSupport::TestCase
end
end
context "unflag on approve" do
setup do
as @janitor do
create(:post_flag, post: @post)
end
end
should "create both post events" do
assert_post_events_created(@janitor, [:flag_removed, :approved]) do
@post.approve!(@janitor)
end
end
end
context "replacements" do
setup do
@replacement = FactoryBot.create(:png_replacement, creator: @user, creator_ip_addr: '127.0.0.1', post: @post)