diff --git a/tests/site_file_tests.rb b/tests/site_file_tests.rb index 120989ad..a52ab44b 100644 --- a/tests/site_file_tests.rb +++ b/tests/site_file_tests.rb @@ -275,6 +275,14 @@ describe 'site_files' do _(File.exists?(@site.files_path('chunkfive.otf'))).must_equal true end + it 'purges cache for html file with extension removed' do + upload 'files[]' => Rack::Test::UploadedFile.new('./tests/files/notindex.html', 'text/html') + _(PurgeCacheWorker.jobs.first['args'].last).must_equal '/notindex.html' + PurgeCacheWorker.jobs.clear + PurgeCacheWorker.new.perform @site.username, '/notindex.html' + _(PurgeCacheWorker.jobs.first['args'].last).must_equal '/notindex' + end + it 'succeeds with index.html file' do _(@site.site_changed).must_equal false upload 'files[]' => Rack::Test::UploadedFile.new('./tests/files/index.html', 'text/html') diff --git a/workers/purge_cache_worker.rb b/workers/purge_cache_worker.rb index 73ddf503..19d29af0 100644 --- a/workers/purge_cache_worker.rb +++ b/workers/purge_cache_worker.rb @@ -14,6 +14,12 @@ class PurgeCacheWorker # Must always have a forward slash path = '/' + path if path[0] != '/' + # Add removed html ext if present + html = path.match(/(.*)\.html?$/) + if html + PurgeCacheWorker.perform_async username, html.captures.first + end + $redis_proxy.publish 'proxy', {cmd: 'purge', path: "#{username}#{path}"}.to_msgpack =begin url = Addressable::URI.encode_component(