diff --git a/spec/controllers/custom_css_controller_spec.rb b/spec/controllers/custom_css_controller_spec.rb index 99d36d21b..405fa0bcf 100644 --- a/spec/controllers/custom_css_controller_spec.rb +++ b/spec/controllers/custom_css_controller_spec.rb @@ -14,17 +14,6 @@ describe CustomCssController do expect(response).to have_http_status(200) end - it 'returns public cache control header' do - expect(response.headers['Cache-Control']).to include('public') - end - - it 'does not set cookies' do - expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be_nil - end - - it 'does not set sessions' do - expect(session).to be_empty - end + it_behaves_like 'cacheable response' end end diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb index be1eefa7b..70aaff9d6 100644 --- a/spec/controllers/instance_actors_controller_spec.rb +++ b/spec/controllers/instance_actors_controller_spec.rb @@ -12,23 +12,18 @@ RSpec.describe InstanceActorsController do get :show, params: { format: format } end - it 'returns http success with correct media type, headers, and session values' do + it 'returns http success with correct media type and body' do expect(response) .to have_http_status(200) .and have_attributes( - media_type: eq('application/activity+json'), - cookies: be_empty + media_type: eq('application/activity+json') ) - expect(response.headers) - .to include('Cache-Control' => include('public')) - .and not_include('Set-Cookies') - - expect(session).to be_empty - expect(body_as_json) .to include(:id, :type, :preferredUsername, :inbox, :publicKey, :inbox, :outbox, :url) end + + it_behaves_like 'cacheable response' end before do diff --git a/spec/controllers/manifests_controller_spec.rb b/spec/controllers/manifests_controller_spec.rb index d0699c438..9279fae02 100644 --- a/spec/controllers/manifests_controller_spec.rb +++ b/spec/controllers/manifests_controller_spec.rb @@ -14,17 +14,6 @@ describe ManifestsController do expect(response).to have_http_status(200) end - it 'returns public cache control header' do - expect(response.headers['Cache-Control']).to include('public') - end - - it 'does not set cookies' do - expect(response.cookies).to be_empty - expect(response.headers['Set-Cookies']).to be_nil - end - - it 'does not set sessions' do - expect(session).to be_empty - end + it_behaves_like 'cacheable response' end end diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb index d41e707d4..2bb0c8de3 100644 --- a/spec/controllers/tags_controller_spec.rb +++ b/spec/controllers/tags_controller_spec.rb @@ -20,13 +20,7 @@ RSpec.describe TagsController do expect(response).to have_http_status(200) end - it 'returns Vary header' do - expect(response.headers['Vary']).to eq 'Accept, Accept-Language, Cookie' - end - - it 'returns public Cache-Control header' do - expect(response.headers['Cache-Control']).to include 'public' - end + it_behaves_like 'cacheable response', expects_vary: 'Accept, Accept-Language, Cookie' end context 'when requested as JSON' do @@ -36,13 +30,7 @@ RSpec.describe TagsController do expect(response).to have_http_status(200) end - it 'returns Vary header' do - expect(response.headers['Vary']).to eq 'Accept, Accept-Language, Cookie' - end - - it 'returns public Cache-Control header' do - expect(response.headers['Cache-Control']).to include 'public' - end + it_behaves_like 'cacheable response', expects_vary: 'Accept, Accept-Language, Cookie' end end diff --git a/spec/support/examples/cache.rb b/spec/support/examples/cache.rb index afbee66b2..60e522f42 100644 --- a/spec/support/examples/cache.rb +++ b/spec/support/examples/cache.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true shared_examples 'cacheable response' do |expects_vary: false| - it 'sets correct cache and vary headers and does not set cookies or session' do + it 'sets correct cache and vary headers and does not set cookies or session', :aggregate_failures do expect(response.cookies).to be_empty expect(response.headers['Set-Cookies']).to be_nil