Fix CacheBuster being queued for missing media attachments (#34253)

This commit is contained in:
Claire 2025-03-24 09:58:15 +01:00 committed by GitHub
parent b892b15ba6
commit ef870007e9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 11 additions and 0 deletions

View file

@ -420,6 +420,8 @@ class MediaAttachment < ApplicationRecord
@paths_to_cache_bust = MediaAttachment.attachment_definitions.keys.flat_map do |attachment_name|
attachment = public_send(attachment_name)
next if attachment.blank?
styles = DEFAULT_STYLES | attachment.styles.keys
styles.map { |style| attachment.url(style) }
end.compact

View file

@ -302,6 +302,15 @@ RSpec.describe MediaAttachment, :attachment_processing do
.to enqueue_sidekiq_job(CacheBusterWorker).with(original_url)
.and enqueue_sidekiq_job(CacheBusterWorker).with(small_url)
end
context 'with a missing remote attachment' do
let(:media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', file: nil) }
it 'does not queue CacheBusterWorker jobs' do
expect { media.destroy }
.to_not enqueue_sidekiq_job(CacheBusterWorker)
end
end
end
private