diff options
author | Rémy Coutable <remy@rymai.me> | 2018-07-16 21:29:14 +0300 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2018-07-16 21:29:14 +0300 |
commit | 7f0431dd8550ac9d229d1383c03386c1634d015f (patch) | |
tree | ed4e1e1ed3964d180d51460f14aa35a53834c8c8 /spec | |
parent | c82adcce6b21272d3d9c8cee541ed03e60e65439 (diff) | |
parent | 209fd86442930ffd398849e386d9d13e699799c7 (diff) |
Merge branch 'fix-project-api-archived' into 'master'
Fix archived parameter for projects API
Closes #32301
See merge request gitlab-org/gitlab-ce!20566
Diffstat (limited to 'spec')
-rw-r--r-- | spec/requests/api/projects_spec.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 8389cb7cf9c..f72c01561d8 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -237,6 +237,39 @@ describe API::Projects do end end + context 'and using archived' do + let!(:archived_project) { create(:project, creator_id: user.id, namespace: user.namespace, archived: true) } + + it 'returns archived projects' do + get api('/projects?archived=true', user) + + expect(response).to have_gitlab_http_status(200) + expect(response).to include_pagination_headers + expect(json_response).to be_an Array + expect(json_response.length).to eq(Project.public_or_visible_to_user(user).where(archived: true).size) + expect(json_response.map { |project| project['id'] }).to include(archived_project.id) + end + + it 'returns non-archived projects' do + get api('/projects?archived=false', user) + + expect(response).to have_gitlab_http_status(200) + expect(response).to include_pagination_headers + expect(json_response).to be_an Array + expect(json_response.length).to eq(Project.public_or_visible_to_user(user).where(archived: false).size) + expect(json_response.map { |project| project['id'] }).not_to include(archived_project.id) + end + + it 'returns every project' do + get api('/projects', user) + + 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(*Project.public_or_visible_to_user(user).pluck(:id)) + end + end + context 'and using search' do it_behaves_like 'projects response' do let(:filter) { { search: project.name } } |