diff options
author | Starfall <us@starfall.systems> | 2022-02-07 14:27:36 -0600 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2022-02-07 14:27:36 -0600 |
commit | 75f9c15f555104f04f4230b2f426550e0953de5b (patch) | |
tree | efd043cece164e31fcbd45eec286202bddd35ce6 /spec | |
parent | 2daee3d28bba6da5dbaf277eca350cc94e5ade13 (diff) | |
parent | b1983623aec8e0b066d115736d2151e0c74407fa (diff) |
Merge remote-tracking branch 'glitch/main'
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/instance_actors_controller_spec.rb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/controllers/instance_actors_controller_spec.rb b/spec/controllers/instance_actors_controller_spec.rb new file mode 100644 index 000000000..f64a7d2ca --- /dev/null +++ b/spec/controllers/instance_actors_controller_spec.rb @@ -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 |