diff --git a/tests/workers/purge_cache_worker_tests.rb b/tests/workers/purge_cache_worker_tests.rb index 48b5ee3f..90be0da8 100644 --- a/tests/workers/purge_cache_worker_tests.rb +++ b/tests/workers/purge_cache_worker_tests.rb @@ -52,4 +52,13 @@ describe PurgeCacheWorker do assert_requested :get, url end + + it 'works without forward slash' do + stub_request(:get, "http://#{@test_ip}/:cache/purge/test.jpg"). + with(headers: {'Host' => 'kyledrake.neocities.org'}) + .to_return(status: 200) + + worker = PurgeCacheWorker.new + worker.perform @test_ip, 'kyledrake', 'test.jpg' + end end diff --git a/workers/purge_cache_worker.rb b/workers/purge_cache_worker.rb index 5f03af6d..836b8a81 100644 --- a/workers/purge_cache_worker.rb +++ b/workers/purge_cache_worker.rb @@ -10,6 +10,9 @@ class PurgeCacheWorker end def perform(proxy_ip, username, path) + # Must always have a forward slash + path = '/' + path if path[0] != '/' + url = Addressable::URI.encode_component( "http://#{proxy_ip}/:cache/purge#{path}", Addressable::URI::CharacterClasses::QUERY