forked from e621ng/e621ng
[PostEvent] Fix unflag event on approve not being created
This commit is contained in:
parent
03615286cf
commit
2b079eabb9
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user