diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-10 00:08:54 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-08-10 00:08:54 +0300 |
commit | a8648ba08604085c76be1e4f5253ffa89aa192e3 (patch) | |
tree | 2d2935497b0291eed102e75725fd4bb801146993 /spec | |
parent | e440e09fe47e84c45f9ed9acc3ec1213846e8be4 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb | 120 | ||||
-rw-r--r-- | spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb | 31 |
2 files changed, 72 insertions, 79 deletions
diff --git a/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb b/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb index 08be350f0f9..c5fa67e50aa 100644 --- a/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb +++ b/spec/lib/gitlab/github_import/importer/pull_requests_reviews_importer_spec.rb @@ -27,100 +27,62 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequestsReviewsImporter do end describe '#each_object_to_import', :clean_gitlab_redis_cache do - context 'when github_review_importer_query_only_unimported_merge_requests is enabled' do - before do - stub_feature_flags(github_review_importer_query_only_unimported_merge_requests: true) - end - - let(:merge_request) do - create( - :merged_merge_request, - iid: 999, - source_project: project, - target_project: project - ) - end - - let(:review) { double(id: 1) } - - it 'fetches the pull requests reviews data' do - page = double(objects: [review], number: 1) - - expect(review) - .to receive(:merge_request_id=) - .with(merge_request.id) - - expect(client) - .to receive(:each_page) - .exactly(:once) # ensure to be cached on the second call - .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 1) - .and_yield(page) + let(:merge_request) do + create( + :merged_merge_request, + iid: 999, + source_project: project, + target_project: project + ) + end - expect { |b| subject.each_object_to_import(&b) } - .to yield_with_args(review) + let(:review) { double(id: 1) } - subject.each_object_to_import {} - end + it 'fetches the pull requests reviews data' do + page = double(objects: [review], number: 1) - it 'skips cached pages' do - Gitlab::GithubImport::PageCounter - .new(project, "merge_request/#{merge_request.id}/pull_request_reviews") - .set(2) + expect(review) + .to receive(:merge_request_id=) + .with(merge_request.id) - expect(review).not_to receive(:merge_request_id=) + expect(client) + .to receive(:each_page) + .exactly(:once) # ensure to be cached on the second call + .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 1) + .and_yield(page) - expect(client) - .to receive(:each_page) - .exactly(:once) # ensure to be cached on the second call - .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 2) + expect { |b| subject.each_object_to_import(&b) } + .to yield_with_args(review) - subject.each_object_to_import {} - end + subject.each_object_to_import {} + end - it 'skips cached merge requests' do - Gitlab::Cache::Import::Caching.set_add( - "github-importer/merge_request/already-imported/#{project.id}", - merge_request.id - ) + it 'skips cached pages' do + Gitlab::GithubImport::PageCounter + .new(project, "merge_request/#{merge_request.id}/pull_request_reviews") + .set(2) - expect(review).not_to receive(:merge_request_id=) + expect(review).not_to receive(:merge_request_id=) - expect(client).not_to receive(:each_page) + expect(client) + .to receive(:each_page) + .exactly(:once) # ensure to be cached on the second call + .with(:pull_request_reviews, 'github/repo', merge_request.iid, page: 2) - subject.each_object_to_import {} - end + subject.each_object_to_import {} end - context 'when github_review_importer_query_only_unimported_merge_requests is disabled' do - before do - stub_feature_flags(github_review_importer_query_only_unimported_merge_requests: false) - end - - it 'fetchs the merged pull requests data' do - merge_request = create( - :merged_merge_request, - iid: 999, - source_project: project, - target_project: project - ) - - review = double - - expect(review) - .to receive(:merge_request_id=) - .with(merge_request.id) + it 'skips cached merge requests' do + Gitlab::Cache::Import::Caching.set_add( + "github-importer/merge_request/already-imported/#{project.id}", + merge_request.id + ) - allow(client) - .to receive(:pull_request_reviews) - .exactly(:once) # ensure to be cached on the second call - .with('github/repo', merge_request.iid) - .and_return([review]) + expect(review).not_to receive(:merge_request_id=) - expect { |b| subject.each_object_to_import(&b) } - .to yield_with_args(review) + expect(client).not_to receive(:each_page) - subject.each_object_to_import {} - end + subject.each_object_to_import {} end end end diff --git a/spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb b/spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb new file mode 100644 index 00000000000..4b5027a5a56 --- /dev/null +++ b/spec/views/groups/runners/_sort_dropdown.html.haml_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe 'groups/runners/sort_dropdown.html.haml' do + describe 'render' do + let_it_be(:sort_options_hash) { { by_title: 'Title' } } + let_it_be(:sort_title_created_date) { 'Created date' } + + before do + allow(view).to receive(:sort).and_return('by_title') + end + + describe 'when a sort option is not selected' do + it 'renders a default sort option' do + render 'groups/runners/sort_dropdown', sort_options_hash: sort_options_hash, sort_title_created_date: sort_title_created_date + + expect(rendered).to have_content 'Created date' + end + end + + describe 'when a sort option is selected' do + it 'renders the selected sort option' do + @sort = :by_title + render 'groups/runners/sort_dropdown', sort_options_hash: sort_options_hash, sort_title_created_date: sort_title_created_date + + expect(rendered).to have_content 'Title' + end + end + end +end |