mirror of
https://github.com/discourse/discourse.git
synced 2025-03-22 16:05:33 +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
|
end
|
||||||
|
|
||||||
DiscourseEvent.trigger(:confirmed_spam_post, post) if trigger_spam
|
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
|
update_flagged_posts_count
|
||||||
end
|
end
|
||||||
@ -199,8 +202,11 @@ class PostAction < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
Post.with_deleted.where(id: post.id).update_all(cached)
|
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
|
update_flagged_posts_count
|
||||||
end
|
end
|
||||||
@ -218,8 +224,11 @@ class PostAction < ActiveRecord::Base
|
|||||||
action.add_moderator_post_if_needed(moderator, :deferred, delete_post)
|
action.add_moderator_post_if_needed(moderator, :deferred, delete_post)
|
||||||
end
|
end
|
||||||
|
|
||||||
DiscourseEvent.trigger(:flag_reviewed, post)
|
if actions.first.present?
|
||||||
DiscourseEvent.trigger(:flag_deferred, actions.first) if actions.first.present?
|
DiscourseEvent.trigger(:flag_reviewed, post)
|
||||||
|
DiscourseEvent.trigger(:flag_deferred, actions.first)
|
||||||
|
end
|
||||||
|
|
||||||
update_flagged_posts_count
|
update_flagged_posts_count
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
it 'flag agreed' do
|
it 'flag agreed' do
|
||||||
event = DiscourseEvent.track_events { PostAction.agree_flags!(post, moderator) }.last
|
events = DiscourseEvent.track_events { PostAction.agree_flags!(post, moderator) }.last(2)
|
||||||
expect(event[:event_name]).to eq(:flag_agreed)
|
expect(events[0][:event_name]).to eq(:flag_reviewed)
|
||||||
expect(event[:params].first).to eq(@flag)
|
expect(events[1][:event_name]).to eq(:flag_agreed)
|
||||||
|
expect(events[1][:params].first).to eq(@flag)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'flag disagreed' do
|
it 'flag disagreed' do
|
||||||
event = DiscourseEvent.track_events { PostAction.clear_flags!(post, moderator) }.last
|
events = DiscourseEvent.track_events { PostAction.clear_flags!(post, moderator) }.last(2)
|
||||||
expect(event[:event_name]).to eq(:flag_disagreed)
|
expect(events[0][:event_name]).to eq(:flag_reviewed)
|
||||||
expect(event[:params].first).to eq(@flag)
|
expect(events[1][:event_name]).to eq(:flag_disagreed)
|
||||||
|
expect(events[1][:params].first).to eq(@flag)
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'flag deferred' do
|
it 'flag deferred' do
|
||||||
event = DiscourseEvent.track_events { PostAction.defer_flags!(post, moderator) }.last
|
events = DiscourseEvent.track_events { PostAction.defer_flags!(post, moderator) }.last(2)
|
||||||
expect(event[:event_name]).to eq(:flag_deferred)
|
expect(events[0][:event_name]).to eq(:flag_reviewed)
|
||||||
expect(event[:params].first).to eq(@flag)
|
expect(events[1][:event_name]).to eq(:flag_deferred)
|
||||||
|
expect(events[1][:params].first).to eq(@flag)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user