From 915ab720164a269dc63d635038c515b93fd8da9f Mon Sep 17 00:00:00 2001 From: Thiago Ribeiro Date: Tue, 27 Oct 2015 22:58:15 -0200 Subject: [PATCH] Fix cache_key expiration on image uploaded in articles --- lib/create_thumbnails_job.rb | 4 ++++ test/unit/create_thumbnails_job_test.rb | 12 ++++++++++++ 2 files changed, 16 insertions(+), 0 deletions(-) diff --git a/lib/create_thumbnails_job.rb b/lib/create_thumbnails_job.rb index a3d4e19..2c3ef97 100644 --- a/lib/create_thumbnails_job.rb +++ b/lib/create_thumbnails_job.rb @@ -3,5 +3,9 @@ class CreateThumbnailsJob < Struct.new(:class_name, :file_id) return unless class_name.constantize.exists?(file_id) file = class_name.constantize.find(file_id) file.create_thumbnails + article = Article.where(:image_id => file_id).first + if article + article.touch + end end end diff --git a/test/unit/create_thumbnails_job_test.rb b/test/unit/create_thumbnails_job_test.rb index 10003da..fa31220 100644 --- a/test/unit/create_thumbnails_job_test.rb +++ b/test/unit/create_thumbnails_job_test.rb @@ -34,4 +34,16 @@ class CreateThumbnailsJobTest < ActiveSupport::TestCase end end + should 'expire cache of articles that use an image that just got a thumbnail' do + person = create_user('test_user').person + file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => person) + article = create(Article, :name => 'test', :image_builder => { + :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png') + }, :profile_id => person.id) + old_cache_key = article.cache_key + job = CreateThumbnailsJob.new(file.class.name, file.id) + job.perform + process_delayed_job_queue + assert_not_equal old_cache_key, Article.find(article.id).reload.cache_key + end end -- libgit2 0.21.2