diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-13 03:07:50 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-12-13 03:07:50 +0000 |
commit | 38bab6e1581d30c0e9d312474fd796404cc7b484 (patch) | |
tree | e4e6b11e2788cae577ecb1efa5195f9bc77b83f2 /spec/requests/api/projects_spec.rb | |
parent | 47b8f79a0896f406008d5a7eda2781f8da301e91 (diff) | |
download | gitlab-ce-38bab6e1581d30c0e9d312474fd796404cc7b484.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/requests/api/projects_spec.rb')
-rw-r--r-- | spec/requests/api/projects_spec.rb | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb index 5161de6de5e..cda2dd7d2f4 100644 --- a/spec/requests/api/projects_spec.rb +++ b/spec/requests/api/projects_spec.rb @@ -155,35 +155,6 @@ describe API::Projects do project4 end - # This is a regression spec for https://gitlab.com/gitlab-org/gitlab/issues/37919 - context 'batch counting forks and open issues and refreshing count caches' do - # We expect to count these projects (only the ones on the first page, not all matching ones) - let(:projects) { Project.public_to_user(nil).order(id: :desc).first(per_page) } - let(:per_page) { 2 } - let(:count_service) { double } - - before do - # Create more projects, so we have more than one page - create_list(:project, 5, :public) - end - - it 'batch counts project forks' do - expect(::Projects::BatchForksCountService).to receive(:new).with(projects).and_return(count_service) - expect(count_service).to receive(:refresh_cache) - - get api("/projects?per_page=#{per_page}") - expect(response.status).to eq 200 - end - - it 'batch counts open issues' do - expect(::Projects::BatchOpenIssuesCountService).to receive(:new).with(projects).and_return(count_service) - expect(count_service).to receive(:refresh_cache) - - get api("/projects?per_page=#{per_page}") - expect(response.status).to eq 200 - end - end - context 'when unauthenticated' do it_behaves_like 'projects response' do let(:filter) { { search: project.name } } @@ -599,87 +570,6 @@ describe API::Projects do let(:projects) { Project.all } end end - - context 'with keyset pagination' do - let(:current_user) { user } - let(:projects) { [public_project, project, project2, project3] } - - context 'headers and records' do - let(:params) { { pagination: 'keyset', order_by: :id, sort: :asc, per_page: 1 } } - - it 'includes a pagination header with link to the next page' do - get api('/projects', current_user), params: params - - expect(response.header).to include('Links') - expect(response.header['Links']).to include('pagination=keyset') - expect(response.header['Links']).to include("id_after=#{public_project.id}") - end - - it 'contains only the first project with per_page = 1' do - get api('/projects', current_user), params: params - - expect(response).to have_gitlab_http_status(200) - expect(json_response).to be_an Array - expect(json_response.map { |p| p['id'] }).to contain_exactly(public_project.id) - end - - it 'does not include a link if the end has reached and there is no more data' do - get api('/projects', current_user), params: params.merge(id_after: project2.id) - - expect(response.header).not_to include('Links') - end - - it 'responds with 501 if order_by is different from id' do - get api('/projects', current_user), params: params.merge(order_by: :created_at) - - expect(response).to have_gitlab_http_status(405) - end - end - - context 'with descending sorting' do - let(:params) { { pagination: 'keyset', order_by: :id, sort: :desc, per_page: 1 } } - - it 'includes a pagination header with link to the next page' do - get api('/projects', current_user), params: params - - expect(response.header).to include('Links') - expect(response.header['Links']).to include('pagination=keyset') - expect(response.header['Links']).to include("id_before=#{project3.id}") - end - - it 'contains only the last project with per_page = 1' do - get api('/projects', current_user), params: params - - expect(response).to have_gitlab_http_status(200) - expect(json_response).to be_an Array - expect(json_response.map { |p| p['id'] }).to contain_exactly(project3.id) - end - end - - context 'retrieving the full relation' do - let(:params) { { pagination: 'keyset', order_by: :id, sort: :desc, per_page: 2 } } - - it 'returns all projects' do - url = '/projects' - requests = 0 - ids = [] - - while url && requests <= 5 # circuit breaker - requests += 1 - get api(url, current_user), params: params - - links = response.header['Links'] - url = links&.match(/<[^>]+(\/projects\?[^>]+)>; rel="next"/) do |match| - match[1] - end - - ids += JSON.parse(response.body).map { |p| p['id'] } - end - - expect(ids).to contain_exactly(*projects.map(&:id)) - end - end - end end describe 'POST /projects' do |