mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: New 'Reviewable' model to make reviewable items generic
Includes support for flags, reviewable users and queued posts, with REST API backwards compatibility. Co-Authored-By: romanrizzi <romanalejandro@gmail.com> Co-Authored-By: jjaffeux <j.jaffeux@gmail.com>
This commit is contained in:
co-authored by
romanrizzi
jjaffeux
parent
9a56b398a1
commit
b58867b6e9
@@ -162,17 +162,17 @@ describe UserMerger do
|
||||
now = Time.zone.now
|
||||
|
||||
freeze_time(now - 1.day)
|
||||
PostAction.act(source_user, p1, PostActionType.types[:like])
|
||||
PostAction.act(source_user, p2, PostActionType.types[:like])
|
||||
PostAction.act(target_user, p2, PostActionType.types[:like])
|
||||
PostAction.act(target_user, p3, PostActionType.types[:like])
|
||||
PostActionCreator.like(source_user, p1)
|
||||
PostActionCreator.like(source_user, p2)
|
||||
PostActionCreator.like(target_user, p2)
|
||||
PostActionCreator.like(target_user, p3)
|
||||
|
||||
freeze_time(now)
|
||||
PostAction.act(source_user, p4, PostActionType.types[:like])
|
||||
PostAction.act(source_user, p5, PostActionType.types[:like])
|
||||
PostAction.act(target_user, p5, PostActionType.types[:like])
|
||||
PostAction.act(source_user, p6, PostActionType.types[:like])
|
||||
PostAction.remove_act(source_user, p6, PostActionType.types[:like])
|
||||
PostActionCreator.like(source_user, p4)
|
||||
PostActionCreator.like(source_user, p5)
|
||||
PostActionCreator.like(target_user, p5)
|
||||
PostActionCreator.like(source_user, p6)
|
||||
PostActionDestroyer.destroy(source_user, p6, :like)
|
||||
|
||||
merge_users!
|
||||
|
||||
@@ -337,10 +337,10 @@ describe UserMerger do
|
||||
type_ids = PostActionType.public_type_ids + [PostActionType.flag_types.values.first]
|
||||
|
||||
type_ids.each do |type|
|
||||
PostAction.act(source_user, p1, type)
|
||||
PostAction.act(source_user, p2, type)
|
||||
PostAction.act(target_user, p2, type)
|
||||
PostAction.act(target_user, p3, type)
|
||||
PostActionCreator.new(source_user, p1, type).perform
|
||||
PostActionCreator.new(source_user, p2, type).perform
|
||||
PostActionCreator.new(target_user, p2, type).perform
|
||||
PostActionCreator.new(target_user, p3, type).perform
|
||||
end
|
||||
|
||||
merge_users!
|
||||
@@ -359,16 +359,16 @@ describe UserMerger do
|
||||
p3 = Fabricate(:post)
|
||||
p4 = Fabricate(:post)
|
||||
|
||||
action1 = PostAction.act(source_user, p1, PostActionType.flag_types[:off_topic])
|
||||
action1 = PostActionCreator.create(source_user, p1, :off_topic).post_action
|
||||
action1.update_attribute(:deleted_by_id, source_user.id)
|
||||
|
||||
action2 = PostAction.act(source_user, p2, PostActionType.flag_types[:off_topic])
|
||||
action2 = PostActionCreator.create(source_user, p2, :off_topic).post_action
|
||||
action2.update_attribute(:deferred_by_id, source_user.id)
|
||||
|
||||
action3 = PostAction.act(source_user, p3, PostActionType.flag_types[:off_topic])
|
||||
action3 = PostActionCreator.create(source_user, p3, :off_topic).post_action
|
||||
action3.update_attribute(:agreed_by_id, source_user.id)
|
||||
|
||||
action4 = PostAction.act(source_user, p4, PostActionType.flag_types[:off_topic])
|
||||
action4 = PostActionCreator.create(source_user, p4, :off_topic).post_action
|
||||
action4.update_attribute(:disagreed_by_id, source_user.id)
|
||||
|
||||
merge_users!
|
||||
@@ -452,8 +452,8 @@ describe UserMerger do
|
||||
|
||||
PostActionType.types.each do |type_name, type_id|
|
||||
posts[type_name] = post = Fabricate(:post, user: walter)
|
||||
PostAction.act(source_user, post, type_id)
|
||||
PostAction.act(target_user, post, type_id)
|
||||
PostActionCreator.new(source_user, post, type_id).perform
|
||||
PostActionCreator.new(target_user, post, type_id).perform
|
||||
end
|
||||
|
||||
merge_users!
|
||||
@@ -465,17 +465,13 @@ describe UserMerger do
|
||||
end
|
||||
end
|
||||
|
||||
it "updates queued posts" do
|
||||
topic = Fabricate(:topic)
|
||||
post1 = Fabricate(:queued_post, topic: topic, user: source_user)
|
||||
post2 = Fabricate(:queued_post, topic: topic, approved_by: source_user)
|
||||
post3 = Fabricate(:queued_post, topic: topic, rejected_by: source_user)
|
||||
it "updates reviewables and reviewable history" do
|
||||
reviewable = Fabricate(:reviewable_queued_post, created_by: source_user)
|
||||
|
||||
merge_users!
|
||||
|
||||
expect(post1.reload.user).to eq(target_user)
|
||||
expect(post2.reload.approved_by).to eq(target_user)
|
||||
expect(post3.reload.rejected_by).to eq(target_user)
|
||||
expect(reviewable.reload.created_by).to eq(target_user)
|
||||
expect(reviewable.reviewable_histories.first.created_by).to eq(target_user)
|
||||
end
|
||||
|
||||
describe 'search logs' do
|
||||
@@ -683,14 +679,6 @@ describe UserMerger do
|
||||
let(:post2) { Fabricate(:post) }
|
||||
let(:post3) { Fabricate(:post) }
|
||||
|
||||
def log_pending_action(user, post)
|
||||
UserAction.log_action!(action_type: UserAction::PENDING,
|
||||
user_id: user.id,
|
||||
acting_user_id: user.id,
|
||||
target_topic_id: post.topic.id,
|
||||
queued_post_id: post.id)
|
||||
end
|
||||
|
||||
def log_like_action(acting_user, user, post)
|
||||
UserAction.log_action!(action_type: UserAction::LIKE,
|
||||
user_id: user.id,
|
||||
@@ -707,22 +695,6 @@ describe UserMerger do
|
||||
target_post_id: -1)
|
||||
end
|
||||
|
||||
it "merges when target_post_id is not set" do
|
||||
a1 = log_pending_action(source_user, post1)
|
||||
_a2 = log_pending_action(source_user, post2)
|
||||
a3 = log_pending_action(target_user, post2)
|
||||
a4 = log_pending_action(target_user, post3)
|
||||
|
||||
merge_users!
|
||||
|
||||
expect(UserAction.count).to eq(3)
|
||||
|
||||
action_ids = UserAction.where(action_type: UserAction::PENDING,
|
||||
user_id: target_user.id,
|
||||
acting_user_id: target_user.id).pluck(:id)
|
||||
expect(action_ids).to contain_exactly(a1.id, a3.id, a4.id)
|
||||
end
|
||||
|
||||
it "merges when target_post_id is set" do
|
||||
_a1 = log_like_action(source_user, walter, post1)
|
||||
a2 = log_like_action(target_user, walter, post1)
|
||||
|
||||
Reference in New Issue
Block a user