FIX: move draft cleanup to the dedicated method and add test

This commit is contained in:
Arpit Jalan 2015-06-03 14:22:41 +05:30
parent 34acb805a4
commit 725861f344
4 changed files with 13 additions and 14 deletions

View File

@ -1,12 +0,0 @@
module Jobs
class CleanUpDrafts < Jobs::Scheduled
every 1.week
def execute(args)
delete_drafts_older_than_n_days = SiteSetting.delete_drafts_older_than_n_days.days.ago
# remove old drafts
Draft.where("updated_at < ?", delete_drafts_older_than_n_days).destroy_all
end
end
end

View File

@ -41,6 +41,10 @@ class Draft < ActiveRecord::Base
WHERE s.draft_key = drafts.draft_key AND
s.user_id = drafts.user_id
)")
# remove old drafts
delete_drafts_older_than_n_days = SiteSetting.delete_drafts_older_than_n_days.days.ago
Draft.where("updated_at < ?", delete_drafts_older_than_n_days).destroy_all
end
end

View File

@ -893,7 +893,7 @@ uncategorized:
default: 0
hidden: true
delete_drafts_older_than_n_days: 90
delete_drafts_older_than_n_days: 180
tos_topic_id:
default: -1

View File

@ -34,7 +34,7 @@ describe Draft do
expect(Draft.get(@user, "test", 1)).to eq "hello"
end
it 'can cleanup old' do
it 'can cleanup old drafts' do
user = Fabricate(:user)
key = Draft::NEW_TOPIC
@ -55,6 +55,13 @@ describe Draft do
Draft.cleanup!
expect(Draft.count).to eq 1
# should cleanup drafts more than 180 days old
SiteSetting.stubs(:delete_drafts_older_than_n_days).returns(180)
Draft.last.update_columns(updated_at: 200.days.ago)
Draft.cleanup!
expect(Draft.count).to eq 0
end