diff options
author | Tomasz Maczukin <tomasz@maczukin.pl> | 2017-11-23 14:32:16 +0100 |
---|---|---|
committer | Tomasz Maczukin <tomasz@maczukin.pl> | 2017-11-23 17:44:05 +0100 |
commit | dfbfd3c7d7d4677ac99a7f8147a673911e8d4e98 (patch) | |
tree | 7dfb3b813f9820fa539eb908dd1ca06719a63348 /spec/requests/api/namespaces_spec.rb | |
parent | 5c2578e68177e0b5ba48f9d2931602747ad58c91 (diff) | |
download | gitlab-ce-dfbfd3c7d7d4677ac99a7f8147a673911e8d4e98.tar.gz |
Allow request namespace by ID or path
Diffstat (limited to 'spec/requests/api/namespaces_spec.rb')
-rw-r--r-- | spec/requests/api/namespaces_spec.rb | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/spec/requests/api/namespaces_spec.rb b/spec/requests/api/namespaces_spec.rb index 80698e1ff74..900d7e059b8 100644 --- a/spec/requests/api/namespaces_spec.rb +++ b/spec/requests/api/namespaces_spec.rb @@ -95,19 +95,36 @@ describe API::Namespaces do describe 'GET /namespaces/:id' do let(:owned_group) { group1 } + shared_examples 'can access namespace' do + it 'returns namespace details' do + get api("/namespaces/#{namespace_id}", request_actor) + + expect(response).to have_gitlab_http_status(200) + + expect(json_response['id']).to eq(requested_namespace.id) + expect(json_response['path']).to eq(requested_namespace.path) + expect(json_response['name']).to eq(requested_namespace.name) + end + end + shared_examples 'namespace reader' do + let(:requested_namespace) { owned_group } + before do owned_group.add_owner(request_actor) end context 'when namespace exists' do - it 'returns namespace details' do - get api("/namespaces/#{owned_group.id}", request_actor) + context 'when requested by ID' do + let(:namespace_id) { owned_group.id } - expect(response).to have_gitlab_http_status(200) + it_behaves_like 'can access namespace' + end + + context 'when requested by path' do + let(:namespace_id) { owned_group.path } - expect(json_response['id']).to eq(owned_group.id) - expect(json_response['name']).to eq(owned_group.name) + it_behaves_like 'can access namespace' end end @@ -132,10 +149,10 @@ describe API::Namespaces do let(:request_actor) { user } context 'when requested namespace is not owned by user' do - it 'returns authentication error' do + it 'returns not-found' do get api("/namespaces/#{group2.id}", request_actor) - expect(response).to have_gitlab_http_status(403) + expect(response).to have_gitlab_http_status(404) end end @@ -148,11 +165,10 @@ describe API::Namespaces do let(:request_actor) { admin } context 'when requested namespace is not owned by user' do - it 'returns authentication error' do - get api("/namespaces/#{group2.id}", request_actor) + let(:namespace_id) { group2.id } + let(:requested_namespace) { group2 } - expect(response).to have_gitlab_http_status(200) - end + it_behaves_like 'can access namespace' end context 'when requested namespace is owned by user' do |