FIX: Take action should agree with all pending flags
This commit is contained in:
parent
0fc798c2ef
commit
df1ab9259b
|
@ -89,6 +89,12 @@ class PostActionCreator
|
||||||
PostActionNotifier.post_action_created(post_action)
|
PostActionNotifier.post_action_created(post_action)
|
||||||
notify_subscribers
|
notify_subscribers
|
||||||
|
|
||||||
|
# agree with other flags
|
||||||
|
if @take_action && reviewable = @post.reviewable_flag
|
||||||
|
result.reviewable.perform(@created_by, :agree_and_keep)
|
||||||
|
post_action.try(:update_counters)
|
||||||
|
end
|
||||||
|
|
||||||
result.success = true
|
result.success = true
|
||||||
result.post_action = post_action
|
result.post_action = post_action
|
||||||
|
|
||||||
|
@ -211,12 +217,6 @@ private
|
||||||
|
|
||||||
GivenDailyLike.increment_for(@created_by.id) if @post_action_type_id == PostActionType.types[:like]
|
GivenDailyLike.increment_for(@created_by.id) if @post_action_type_id == PostActionType.types[:like]
|
||||||
|
|
||||||
# agree with other flags
|
|
||||||
if @take_action && reviewable = @post.reviewable_flag
|
|
||||||
reviewable.perform(@created_by, :agree_and_keep)
|
|
||||||
post_action.try(:update_counters)
|
|
||||||
end
|
|
||||||
|
|
||||||
post_action
|
post_action
|
||||||
rescue ActiveRecord::RecordNotUnique
|
rescue ActiveRecord::RecordNotUnique
|
||||||
# can happen despite being .create
|
# can happen despite being .create
|
||||||
|
|
|
@ -101,4 +101,23 @@ describe PostActionCreator do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "take_action" do
|
||||||
|
before do
|
||||||
|
PostActionCreator.create(Fabricate(:user), post, :inappropriate)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "will agree with the old reviewable" do
|
||||||
|
reviewable = PostActionCreator.new(
|
||||||
|
Fabricate(:moderator),
|
||||||
|
post,
|
||||||
|
PostActionType.types[:spam],
|
||||||
|
take_action: true
|
||||||
|
).perform.reviewable
|
||||||
|
scores = reviewable.reviewable_scores
|
||||||
|
expect(scores[0]).to be_agreed
|
||||||
|
expect(scores[1]).to be_agreed
|
||||||
|
expect(reviewable.reload).to be_approved
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue