neocities/tests/workers/purge_cache_worker_tests.rb
2016-10-23 13:05:10 -05:00

52 lines
1.5 KiB
Ruby

require_relative '../environment.rb'
describe PurgeCacheWorker do
before do
@test_ip = '10.0.0.1'
end
it 'handles 404 without exception' do
stub_request(:head, "http://#{@test_ip}/test.jpg").
with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'})
.to_return(status: 404)
worker = PurgeCacheWorker.new
worker.perform @test_ip, 'kyledrake', '/test.jpg'
end
it 'sends a purge request' do
stub_request(:head, "http://#{@test_ip}/test.jpg").
with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'})
.to_return(status: 200)
worker = PurgeCacheWorker.new
worker.perform @test_ip, 'kyledrake', '/test.jpg'
assert_requested :head, "http://#{@test_ip}/test.jpg"
end
it 'handles spaces correctly' do
stub_request(:head, "http://#{@test_ip}/te st.jpg").
with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'})
.to_return(status: 200)
url = Addressable::URI.encode_component(
"http://#{@test_ip}/te st.jpg",
Addressable::URI::CharacterClasses::QUERY
)
worker = PurgeCacheWorker.new
worker.perform @test_ip, 'kyledrake', '/te st.jpg'
assert_requested :head, url
end
it 'works without forward slash' do
stub_request(:head, "http://#{@test_ip}/test.jpg").
with(headers: {'Host' => 'kyledrake.neocities.org', 'Cache-Purge' => '1'})
.to_return(status: 200)
worker = PurgeCacheWorker.new
worker.perform @test_ip, 'kyledrake', 'test.jpg'
end
end