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:
parent
bcf85b5208
commit
f55dd193f9
6 changed files with 88 additions and 37 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue