diff options
author | Marko, Peter <peter.marko@siemens.com> | 2018-07-08 21:43:06 +0200 |
---|---|---|
committer | Peter Marko <peter.marko@siemens.com> | 2018-07-23 20:57:50 +0200 |
commit | 6d72bb383286e18421c7b5756f8109a6ccbe05b5 (patch) | |
tree | 6df012ec24c318f5f5d174eee0402c9725d6f843 /spec | |
parent | 9cdf4292c55c41feeb056842cefcd88a957afb05 (diff) | |
download | gitlab-ce-6d72bb383286e18421c7b5756f8109a6ccbe05b5.tar.gz |
Add min_access_level filter to projects API
Signed-off-by: Marko, Peter <peter.marko@siemens.com>
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/api/projects_spec.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 5ac008c7e40..71e3436fa76 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -400,6 +400,22 @@ describe API::Projects do end end end + + context 'and with min_access_level' do + before do + project2.add_master(user2) + project3.add_developer(user2) + project4.add_reporter(user2) + end + + it 'returns an array of groups the user has at least developer access' do + get api('/projects', user2), { min_access_level: 30 } + expect(response).to have_gitlab_http_status(200) + expect(response).to include_pagination_headers + expect(json_response).to be_an Array + expect(json_response.map { |project| project['id'] }).to contain_exactly(project2.id, project3.id) + end + end end context 'when authenticated as a different user' do @@ -681,6 +697,20 @@ describe API::Projects do expect(json_response).to be_an Array expect(json_response.map { |project| project['id'] }).to contain_exactly(public_project.id) end + + it 'returns projects filetered by minimal access level' do + private_project1 = create(:project, :private, name: 'private_project1', creator_id: user4.id, namespace: user4.namespace) + private_project2 = create(:project, :private, name: 'private_project2', creator_id: user4.id, namespace: user4.namespace) + private_project1.add_developer(user2) + private_project2.add_reporter(user2) + + get api("/users/#{user4.id}/projects/", user2), { min_access_level: 30 } + + expect(response).to have_gitlab_http_status(200) + expect(response).to include_pagination_headers + expect(json_response).to be_an Array + expect(json_response.map { |project| project['id'] }).to contain_exactly(private_project1.id) + end end describe 'POST /projects/user/:id' do |