From 3e4e85ceee8e30b3dff65fd8472427da12aa4f06 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Tue, 19 Aug 2014 17:05:43 -0700 Subject: [PATCH] fix and test purge cache --- models/site.rb | 5 +++-- tests/site_file_tests.rb | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/models/site.rb b/models/site.rb index 8b8412bf..6492586c 100644 --- a/models/site.rb +++ b/models/site.rb @@ -202,7 +202,7 @@ class Site < Sequel::Model %w{index not_found}.each do |name| File.write files_path("#{name}.html"), render_template("#{name}.erb") - purge_cache "#{name}.html" + purge_cache "/#{name}.html" ScreenshotWorker.perform_async values[:username], "#{name}.html" end @@ -327,7 +327,8 @@ class Site < Sequel::Model end def purge_cache(path) - payload = {site: username, path: path} + relative_path = path.gsub(base_files_path, '') + payload = {site: username, path: relative_path} payload[:domain] = domain if !domain.empty? PurgeCacheWorker.perform_async payload end diff --git a/tests/site_file_tests.rb b/tests/site_file_tests.rb index 0904df23..ac920ff7 100644 --- a/tests/site_file_tests.rb +++ b/tests/site_file_tests.rb @@ -11,16 +11,22 @@ describe 'site_files' do describe 'upload' do it 'succeeds with valid file' do site = Fabricate :site + PurgeCacheWorker.jobs.clear post '/site_files/upload', { 'files[]' => Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg'), 'csrf_token' => 'abcd' }, {'rack.session' => { 'id' => site.id, '_csrf_token' => 'abcd' }} last_response.body.must_match /successfully uploaded/i File.exists?(site.files_path('test.jpg')).must_equal true + + queue_args = PurgeCacheWorker.jobs.first['args'].first + queue_args['site'].must_equal site.username + queue_args['path'].must_equal '/test.jpg' end it 'works with directory path' do site = Fabricate :site + PurgeCacheWorker.jobs.clear post '/site_files/upload', { 'dir' => 'derpie/derptest', 'files[]' => Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg'), @@ -28,6 +34,9 @@ describe 'site_files' do }, {'rack.session' => { 'id' => site.id, '_csrf_token' => 'abcd' }} last_response.body.must_match /successfully uploaded/i File.exists?(site.files_path('derpie/derptest/test.jpg')).must_equal true + + queue_args = PurgeCacheWorker.jobs.first['args'].first + queue_args['path'].must_equal '/derpie/derptest/test.jpg' end end end \ No newline at end of file