require 'rails_helper'
describe Jobs::EnsurePostUploadsExistence do
context '.execute' do
let(:upload) { Fabricate(:upload) }
let(:optimized) { Fabricate(:optimized_image, url: '/uploads/default/optimized/1X/d1c2d40ab994e8410c_100x200.png') }
context "when enabled" do
before do
SiteSetting.enable_missing_post_uploads_check = true
end
it 'should create post custom field for missing upload' do
Fabricate(:post, cooked: "A sample post
")
upload.destroy!
described_class.new.execute({})
field = PostCustomField.find_by(name: Jobs::EnsurePostUploadsExistence::MISSING_UPLOADS)
expect(field).to be_present
expect(field.value).to eq(upload.url)
end
it 'should create post custom field with nil value' do
Fabricate(:post, cooked: "A sample post
")
described_class.new.execute({})
field = PostCustomField.find_by(name: Jobs::EnsurePostUploadsExistence::MISSING_UPLOADS)
expect(field).to be_present
expect(field.value).to eq(nil)
end
end
context "when disabled" do
before do
SiteSetting.enable_missing_post_uploads_check = false
end
it "does not execute" do
Fabricate(:post, cooked: "A sample post
")
upload.destroy!
described_class.new.execute({})
field = PostCustomField.find_by(name: Jobs::EnsurePostUploadsExistence::MISSING_UPLOADS)
expect(field).to be_blank
end
end
end
end