diff --git a/app/jobs/scheduled/weekly.rb b/app/jobs/scheduled/weekly.rb index 52905e2bf3f..705cf600243 100644 --- a/app/jobs/scheduled/weekly.rb +++ b/app/jobs/scheduled/weekly.rb @@ -14,6 +14,7 @@ module Jobs MiniScheduler::Stat.purge_old Draft.cleanup! UserAuthToken.cleanup! + Upload.reset_unknown_extensions! end end end diff --git a/app/models/upload.rb b/app/models/upload.rb index fcb67cae36c..b013ece4b47 100644 --- a/app/models/upload.rb +++ b/app/models/upload.rb @@ -359,6 +359,10 @@ class Upload < ActiveRecord::Base problems end + def self.reset_unknown_extensions! + Upload.where(extension: "unknown").update_all(extension: nil) + end + private def short_url_basename diff --git a/spec/models/upload_spec.rb b/spec/models/upload_spec.rb index 89bbe335238..ffb312d1f3e 100644 --- a/spec/models/upload_spec.rb +++ b/spec/models/upload_spec.rb @@ -288,4 +288,15 @@ describe Upload do end end + describe '.reset_unknown_extensions!' do + it 'should reset the extension of uploads when it is "unknown"' do + upload1 = Fabricate(:upload, extension: "unknown") + upload2 = Fabricate(:upload, extension: "png") + + Upload.reset_unknown_extensions! + + expect(upload1.reload.extension).to eq(nil) + expect(upload2.reload.extension).to eq("png") + end + end end