Fix RSS feeds not being cachable (#14368)
* Add tests for some cachable responses This only covers responses that we should have managed to make cachable so far. It's not the case of all responses that should be cachable in the end. * Fix RSS feeds not being cachable
This commit is contained in:
@ -5,6 +5,21 @@ RSpec.describe AccountsController, type: :controller do
|
||||
|
||||
let(:account) { Fabricate(:user).account }
|
||||
|
||||
shared_examples 'cachable response' do
|
||||
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 'returns public Cache-Control header' do
|
||||
expect(response.headers['Cache-Control']).to include 'public'
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET #show' do
|
||||
let(:format) { 'html' }
|
||||
|
||||
@ -323,9 +338,7 @@ RSpec.describe AccountsController, type: :controller do
|
||||
expect(response.content_type).to eq 'application/activity+json'
|
||||
end
|
||||
|
||||
it 'returns public Cache-Control header' do
|
||||
expect(response.headers['Cache-Control']).to include 'public'
|
||||
end
|
||||
it_behaves_like 'cachable response'
|
||||
|
||||
it 'renders account' do
|
||||
json = body_as_json
|
||||
@ -343,9 +356,7 @@ RSpec.describe AccountsController, type: :controller do
|
||||
expect(response.content_type).to eq 'application/activity+json'
|
||||
end
|
||||
|
||||
it 'returns public Cache-Control header' do
|
||||
expect(response.headers['Cache-Control']).to include 'public'
|
||||
end
|
||||
it_behaves_like 'cachable response'
|
||||
|
||||
it 'returns Vary header with Signature' do
|
||||
expect(response.headers['Vary']).to include 'Signature'
|
||||
@ -401,9 +412,7 @@ RSpec.describe AccountsController, type: :controller do
|
||||
expect(response.content_type).to eq 'application/activity+json'
|
||||
end
|
||||
|
||||
it 'returns public Cache-Control header' do
|
||||
expect(response.headers['Cache-Control']).to include 'public'
|
||||
end
|
||||
it_behaves_like 'cachable response'
|
||||
|
||||
it 'renders account' do
|
||||
json = body_as_json
|
||||
@ -447,9 +456,7 @@ RSpec.describe AccountsController, type: :controller 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_behaves_like 'cachable response'
|
||||
end
|
||||
|
||||
context do
|
||||
|
Reference in New Issue
Block a user