mirror of
https://github.com/discourse/discourse.git
synced 2024-11-26 11:03:40 +08:00
DEV: should ignore missing post uploads when a user export destroyed
This commit is contained in:
parent
6c6a6771af
commit
793915fe6a
|
@ -4,6 +4,14 @@ class UserExport < ActiveRecord::Base
|
|||
belongs_to :user
|
||||
belongs_to :upload, dependent: :destroy
|
||||
|
||||
around_destroy :ignore_missing_post_uploads
|
||||
|
||||
def ignore_missing_post_uploads
|
||||
post_ids = upload.post_uploads.pluck(:post_id)
|
||||
yield
|
||||
post_ids.each { |post_id| PostCustomField.create!(post_id: post_id, name: Post::MISSING_UPLOADS_IGNORED, value: "t") }
|
||||
end
|
||||
|
||||
def self.remove_old_exports
|
||||
UserExport.where('created_at < ?', 2.days.ago).find_each do |user_export|
|
||||
user_export.destroy!
|
||||
|
|
|
@ -33,4 +33,22 @@ RSpec.describe UserExport do
|
|||
expect(Upload.exists?(id: csv_file_2.id)).to eq(true)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#destroy!' do
|
||||
it 'should create post custom field for ignored missing uploads' do
|
||||
upload = Fabricate(:upload, created_at: 3.days.ago)
|
||||
export = UserExport.create!(
|
||||
file_name: "test",
|
||||
user: user,
|
||||
upload_id: upload.id,
|
||||
created_at: 3.days.ago
|
||||
)
|
||||
post = Fabricate(:post, raw: "![#{upload.original_filename}](#{upload.short_url})")
|
||||
post.link_post_uploads
|
||||
|
||||
export.destroy!
|
||||
|
||||
expect(PostCustomField.exists?(post_id: post.id, name: Post::MISSING_UPLOADS_IGNORED)).to eq(true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue
Block a user