Fix instance actor not being dereferenceable (#17457)

* Add tests

* Fix instance actor not being dereferenceable

* Fix tests

* Fix tests for real
shrike
Claire 2022-02-06 15:31:03 +01:00 committed by GitHub
parent 097c4903f1
commit 92658f0fb0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 56 additions and 0 deletions

View File

@ -3,6 +3,7 @@
class InstanceActorsController < ApplicationController class InstanceActorsController < ApplicationController
include AccountControllerConcern include AccountControllerConcern
skip_before_action :check_account_confirmation
skip_around_action :set_locale skip_around_action :set_locale
def show def show

View File

@ -0,0 +1,55 @@
require 'rails_helper'
RSpec.describe InstanceActorsController, type: :controller do
describe 'GET #show' do
context 'as JSON' do
let(:format) { 'json' }
shared_examples 'shared behavior' do
before do
get :show, params: { format: format }
end
it 'returns http success' do
expect(response).to have_http_status(200)
end
it 'returns application/activity+json' do
expect(response.media_type).to eq 'application/activity+json'
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 'returns public Cache-Control header' do
expect(response.headers['Cache-Control']).to include 'public'
end
it 'renders account' do
json = body_as_json
expect(json).to include(:id, :type, :preferredUsername, :inbox, :publicKey, :inbox, :outbox, :url)
end
end
before do
allow(controller).to receive(:authorized_fetch_mode?).and_return(authorized_fetch_mode)
end
context 'without authorized fetch mode' do
let(:authorized_fetch_mode) { false }
it_behaves_like 'shared behavior'
end
context 'with authorized fetch mode' do
let(:authorized_fetch_mode) { true }
it_behaves_like 'shared behavior'
end
end
end
end