mirror of https://github.com/mastodon/mastodon.git
Align tests with documentation for public timeline access
parent
7875c06388
commit
3c886a05bc
|
@ -95,37 +95,28 @@ describe 'Public' do
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when the instance does not allow public preview' do
|
context 'when the instance does not allow public preview' do
|
||||||
|
let(:expected_statuses) { [local_status, remote_status, media_status] }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
Form::AdminSettings.new(timeline_preview: false).save
|
Form::AdminSettings.new(timeline_preview: false).save
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with an authenticated user' do
|
context 'with an authenticated user' do
|
||||||
let(:expected_statuses) { [local_status, remote_status, media_status] }
|
|
||||||
|
|
||||||
it_behaves_like 'a successful request to the public timeline'
|
it_behaves_like 'a successful request to the public timeline'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'with an authenticated user but using the wrong scope' do
|
||||||
|
it_behaves_like 'forbidden for wrong scope', 'follow'
|
||||||
|
end
|
||||||
|
|
||||||
context 'with an authenticated application' do
|
context 'with an authenticated application' do
|
||||||
let(:client_app) { Fabricate(:application) }
|
let(:client_app) { Fabricate(:application) }
|
||||||
let(:token) { Fabricate(:accessible_access_token, application: client_app, scopes: scopes) }
|
let(:token) { Fabricate(:accessible_access_token, application: client_app, scopes: scopes) }
|
||||||
|
|
||||||
# it_behaves_like 'a successful request to the public timeline'
|
it_behaves_like 'a successful request to the public timeline'
|
||||||
it 'returns http unprocessable entity' do
|
|
||||||
subject
|
|
||||||
|
|
||||||
expect(response).to have_http_status(422)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with an unauthenticated user' do
|
it_behaves_like 'unauthorized for invalid token'
|
||||||
let(:headers) { {} }
|
|
||||||
|
|
||||||
it 'returns http unprocessable entity' do
|
|
||||||
subject
|
|
||||||
|
|
||||||
expect(response).to have_http_status(422)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -8,16 +8,6 @@ RSpec.describe 'Filters' do
|
||||||
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
|
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
|
||||||
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
|
let(:headers) { { 'Authorization' => "Bearer #{token.token}" } }
|
||||||
|
|
||||||
shared_examples 'unauthorized for invalid token' do
|
|
||||||
let(:headers) { { 'Authorization' => '' } }
|
|
||||||
|
|
||||||
it 'returns http unauthorized' do
|
|
||||||
subject
|
|
||||||
|
|
||||||
expect(response).to have_http_status(401)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'GET /api/v2/filters' do
|
describe 'GET /api/v2/filters' do
|
||||||
subject do
|
subject do
|
||||||
get '/api/v2/filters', headers: headers
|
get '/api/v2/filters', headers: headers
|
||||||
|
|
|
@ -21,3 +21,35 @@ shared_examples 'forbidden for wrong role' do |wrong_role|
|
||||||
expect(response).to have_http_status(403)
|
expect(response).to have_http_status(403)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
shared_examples 'unprocessable entity' do
|
||||||
|
it 'returns http unprocessable entity' do
|
||||||
|
# Some examples have a subject which needs to be called to make a request
|
||||||
|
subject if request.nil?
|
||||||
|
|
||||||
|
expect(response).to have_http_status(422)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
shared_examples 'unauthorized for invalid token' do
|
||||||
|
context 'with empty Authorization header' do
|
||||||
|
let(:headers) { { 'Authorization' => '' } }
|
||||||
|
|
||||||
|
it 'returns http unauthorized' do
|
||||||
|
# Some examples have a subject which needs to be called to make a request
|
||||||
|
subject if request.nil?
|
||||||
|
|
||||||
|
expect(response).to have_http_status(401)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'without Authorization header' do
|
||||||
|
let(:headers) { {} }
|
||||||
|
|
||||||
|
it 'returns http unprocessable entity' do
|
||||||
|
subject
|
||||||
|
|
||||||
|
expect(response).to have_http_status(401)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue