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:
Robin Ward
2019-01-03 12:03:01 -05:00
parent 9a56b398a1
commit b58867b6e9
354 changed files with 8090 additions and 5225 deletions

View File

@@ -5,40 +5,46 @@ describe Jobs::AutoQueueHandler do
subject { Jobs::AutoQueueHandler.new.execute({}) }
context "old flag" do
let!(:old) { Fabricate(:flag, created_at: 61.days.ago) }
let!(:not_old) { Fabricate(:flag, created_at: 59.days.ago) }
let!(:old) { Fabricate(:reviewable_flagged_post, created_at: 61.days.ago) }
let!(:not_old) { Fabricate(:reviewable_flagged_post, created_at: 59.days.ago) }
it "defers the old flag if auto_handle_queued_age is 60" do
SiteSetting.auto_handle_queued_age = 60
subject
expect(not_old.reload.deferred_at).to be_nil
expect(old.reload.deferred_at).to_not be_nil
expect(not_old.reload).to be_pending
expect(old.reload).not_to be_pending
end
it "doesn't defer the old flag if auto_handle_queued_age is 0" do
SiteSetting.auto_handle_queued_age = 0
subject
expect(not_old.reload.deferred_at).to be_nil
expect(old.reload.deferred_at).to be_nil
expect(not_old.reload).to be_pending
expect(old.reload).to be_pending
end
end
context "old queued post" do
let!(:old) { Fabricate(:queued_post, created_at: 61.days.ago, queue: 'default') }
let!(:not_old) { Fabricate(:queued_post, created_at: 59.days.ago, queue: 'default') }
context "reviewables" do
let!(:new_post) { Fabricate(:reviewable_queued_post, created_at: 59.days.ago) }
let!(:old_post) { Fabricate(:reviewable_queued_post, created_at: 61.days.ago) }
let!(:new_user) { Fabricate(:reviewable, created_at: 10.days.ago) }
let!(:old_user) { Fabricate(:reviewable, created_at: 80.days.ago) }
it "rejects the post when auto_handle_queued_age is 60" do
SiteSetting.auto_handle_queued_age = 60
subject
expect(not_old.reload.state).to eq(QueuedPost.states[:new])
expect(old.reload.state).to eq(QueuedPost.states[:rejected])
expect(new_post.reload.pending?).to eq(true)
expect(old_post.reload.rejected?).to eq(true)
expect(new_user.reload.pending?).to eq(true)
expect(old_user.reload.rejected?).to eq(true)
end
it "doesn't reject the post when auto_handle_queued_age is 0" do
it "leaves reviewables as pending auto_handle_queued_age is 0" do
SiteSetting.auto_handle_queued_age = 0
subject
expect(not_old.reload.state).to eq(QueuedPost.states[:new])
expect(old.reload.state).to eq(QueuedPost.states[:new])
expect(new_post.reload.pending?).to eq(true)
expect(new_user.reload.pending?).to eq(true)
expect(old_post.reload.pending?).to eq(true)
expect(old_user.reload.pending?).to eq(true)
end
end