mirror of
https://github.com/discourse/discourse.git
synced 2025-03-22 23:35:38 +08:00
FIX: don't trigger 'flag_reviewed' when no flags were reviewed
This commit is contained in:
parent
edf26a0931
commit
93201d8dbe
@ -165,8 +165,11 @@ class PostAction < ActiveRecord::Base
|
||||
end
|
||||
|
||||
DiscourseEvent.trigger(:confirmed_spam_post, post) if trigger_spam
|
||||
DiscourseEvent.trigger(:flag_reviewed, post)
|
||||
DiscourseEvent.trigger(:flag_agreed, actions.first) if actions.first.present?
|
||||
|
||||
if actions.first.present?
|
||||
DiscourseEvent.trigger(:flag_reviewed, post)
|
||||
DiscourseEvent.trigger(:flag_agreed, actions.first)
|
||||
end
|
||||
|
||||
update_flagged_posts_count
|
||||
end
|
||||
@ -199,8 +202,11 @@ class PostAction < ActiveRecord::Base
|
||||
end
|
||||
|
||||
Post.with_deleted.where(id: post.id).update_all(cached)
|
||||
DiscourseEvent.trigger(:flag_reviewed, post)
|
||||
DiscourseEvent.trigger(:flag_disagreed, actions.first) if actions.first.present?
|
||||
|
||||
if actions.first.present?
|
||||
DiscourseEvent.trigger(:flag_reviewed, post)
|
||||
DiscourseEvent.trigger(:flag_disagreed, actions.first)
|
||||
end
|
||||
|
||||
update_flagged_posts_count
|
||||
end
|
||||
@ -218,8 +224,11 @@ class PostAction < ActiveRecord::Base
|
||||
action.add_moderator_post_if_needed(moderator, :deferred, delete_post)
|
||||
end
|
||||
|
||||
DiscourseEvent.trigger(:flag_reviewed, post)
|
||||
DiscourseEvent.trigger(:flag_deferred, actions.first) if actions.first.present?
|
||||
if actions.first.present?
|
||||
DiscourseEvent.trigger(:flag_reviewed, post)
|
||||
DiscourseEvent.trigger(:flag_deferred, actions.first)
|
||||
end
|
||||
|
||||
update_flagged_posts_count
|
||||
end
|
||||
|
||||
|
18
spec/integration/flags_spec.rb
Normal file
18
spec/integration/flags_spec.rb
Normal file
@ -0,0 +1,18 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe PostAction do
|
||||
|
||||
it "triggers the 'flag_reviewed' event when there was at least one flag" do
|
||||
admin = Fabricate(:admin)
|
||||
|
||||
post = Fabricate(:post)
|
||||
events = DiscourseEvent.track_events { PostDestroyer.new(admin, post).destroy }
|
||||
expect(events.map { |e| e[:event_name] }).to_not include(:flag_reviewed)
|
||||
|
||||
flagged_post = Fabricate(:post)
|
||||
PostAction.act(admin, flagged_post, PostActionType.types[:spam])
|
||||
events = DiscourseEvent.track_events { PostDestroyer.new(admin, flagged_post).destroy }
|
||||
expect(events.map { |e| e[:event_name] }).to include(:flag_reviewed)
|
||||
end
|
||||
|
||||
end
|
@ -754,21 +754,24 @@ describe PostAction do
|
||||
end
|
||||
|
||||
it 'flag agreed' do
|
||||
event = DiscourseEvent.track_events { PostAction.agree_flags!(post, moderator) }.last
|
||||
expect(event[:event_name]).to eq(:flag_agreed)
|
||||
expect(event[:params].first).to eq(@flag)
|
||||
events = DiscourseEvent.track_events { PostAction.agree_flags!(post, moderator) }.last(2)
|
||||
expect(events[0][:event_name]).to eq(:flag_reviewed)
|
||||
expect(events[1][:event_name]).to eq(:flag_agreed)
|
||||
expect(events[1][:params].first).to eq(@flag)
|
||||
end
|
||||
|
||||
it 'flag disagreed' do
|
||||
event = DiscourseEvent.track_events { PostAction.clear_flags!(post, moderator) }.last
|
||||
expect(event[:event_name]).to eq(:flag_disagreed)
|
||||
expect(event[:params].first).to eq(@flag)
|
||||
events = DiscourseEvent.track_events { PostAction.clear_flags!(post, moderator) }.last(2)
|
||||
expect(events[0][:event_name]).to eq(:flag_reviewed)
|
||||
expect(events[1][:event_name]).to eq(:flag_disagreed)
|
||||
expect(events[1][:params].first).to eq(@flag)
|
||||
end
|
||||
|
||||
it 'flag deferred' do
|
||||
event = DiscourseEvent.track_events { PostAction.defer_flags!(post, moderator) }.last
|
||||
expect(event[:event_name]).to eq(:flag_deferred)
|
||||
expect(event[:params].first).to eq(@flag)
|
||||
events = DiscourseEvent.track_events { PostAction.defer_flags!(post, moderator) }.last(2)
|
||||
expect(events[0][:event_name]).to eq(:flag_reviewed)
|
||||
expect(events[1][:event_name]).to eq(:flag_deferred)
|
||||
expect(events[1][:params].first).to eq(@flag)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user