Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-12-03 21:10:10 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-12-03 21:10:10 +0300
commitc2a6cc86754adb3c5e064cebc58d206a52cb412e (patch)
tree3960c9ae2590e89e25193a0006e84d06f900e378 /spec/features/merge_requests
parentbbd9e2c915c46920ceb51376db19599cbf9ba836 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/features/merge_requests')
-rw-r--r--spec/features/merge_requests/user_sees_empty_state_spec.rb40
-rw-r--r--spec/features/merge_requests/user_squashes_merge_request_spec.rb149
-rw-r--r--spec/features/merge_requests/user_views_diffs_commit_spec.rb19
3 files changed, 40 insertions, 168 deletions
diff --git a/spec/features/merge_requests/user_sees_empty_state_spec.rb b/spec/features/merge_requests/user_sees_empty_state_spec.rb
new file mode 100644
index 00000000000..ac07b31731d
--- /dev/null
+++ b/spec/features/merge_requests/user_sees_empty_state_spec.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'Merge request > User sees empty state' do
+ let(:project) { create(:project, :public, :repository) }
+ let(:user) { project.creator }
+
+ before do
+ project.add_maintainer(user)
+ sign_in(user)
+ end
+
+ it 'shows an empty state and a "New merge request" button' do
+ visit project_merge_requests_path(project)
+
+ expect(page).to have_selector('.empty-state')
+ expect(page).to have_link 'New merge request', href: project_new_merge_request_path(project)
+ end
+
+ context 'if there are merge requests' do
+ before do
+ create(:merge_request, source_project: project)
+ end
+
+ it 'does not show an empty state' do
+ visit project_merge_requests_path(project)
+
+ expect(page).not_to have_selector('.empty-state')
+ end
+
+ it 'shows empty state when filter results empty' do
+ visit project_merge_requests_path(project, milestone_title: "1.0")
+
+ expect(page).to have_selector('.empty-state')
+ expect(page).to have_content('Sorry, your filter produced no results')
+ expect(page).to have_content('To widen your search, change or remove filters above')
+ end
+ end
+end
diff --git a/spec/features/merge_requests/user_squashes_merge_request_spec.rb b/spec/features/merge_requests/user_squashes_merge_request_spec.rb
deleted file mode 100644
index 84964bd0637..00000000000
--- a/spec/features/merge_requests/user_squashes_merge_request_spec.rb
+++ /dev/null
@@ -1,149 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'User squashes a merge request', :js do
- let(:user) { create(:user) }
- let(:project) { create(:project, :repository) }
- let(:source_branch) { 'csv' }
- let(:protected_source_branch) { false }
-
- let!(:original_head) { project.repository.commit('master') }
-
- shared_examples 'squash' do
- it 'squashes the commits into a single commit, and adds a merge commit', :sidekiq_might_not_need_inline do
- expect(page).to have_content('Merged')
-
- latest_master_commits = project.repository.commits_between(original_head.sha, 'master').map(&:raw)
-
- squash_commit = an_object_having_attributes(sha: a_string_matching(/\h{40}/),
- message: a_string_starting_with(project.merge_requests.first.default_squash_commit_message),
- author_name: user.name,
- committer_name: user.name)
-
- merge_commit = an_object_having_attributes(sha: a_string_matching(/\h{40}/),
- message: a_string_starting_with("Merge branch 'csv' into 'master'"),
- author_name: user.name,
- committer_name: user.name)
-
- expect(project.repository).not_to be_merged_to_root_ref(source_branch)
- expect(latest_master_commits).to match([squash_commit, merge_commit])
- end
- end
-
- shared_examples 'no squash' do
- it 'accepts the merge request without squashing', :sidekiq_might_not_need_inline do
- expect(page).to have_content('Merged')
- expect(project.repository).to be_merged_to_root_ref(source_branch)
- end
- end
-
- def accept_mr
- expect(page).to have_button('Merge')
-
- uncheck 'Delete source branch' unless protected_source_branch
- click_on 'Merge'
- end
-
- before do
- # Prevent source branch from being removed so we can use be_merged_to_root_ref
- # method to check if squash was performed or not
- allow_next_instance_of(MergeRequest) do |instance|
- allow(instance).to receive(:force_remove_source_branch?).and_return(false)
- end
- project.add_maintainer(user)
-
- sign_in user
- end
-
- context 'when the MR has only one commit' do
- let(:source_branch) { 'master' }
- let(:target_branch) { 'branch-merged' }
- let(:protected_source_branch) { true }
- let(:source_sha) { project.commit(source_branch).sha }
- let(:target_sha) { project.commit(target_branch).sha }
-
- before do
- merge_request = create(:merge_request, source_project: project, target_project: project, source_branch: source_branch, target_branch: target_branch, squash: true)
-
- visit project_merge_request_path(project, merge_request)
- end
-
- it 'accepts the merge request without issuing a squash request', :sidekiq_inline do
- expect_next_instance_of(Gitlab::GitalyClient::OperationService) do |instance|
- expect(instance).not_to receive(:user_squash)
- end
-
- expect(project.repository.ancestor?(source_branch, target_branch)).to be_falsey
- expect(page).not_to have_field('squash')
-
- accept_mr
-
- expect(page).to have_content('Merged')
-
- latest_target_commits = project.repository.commits_between(source_sha, target_sha).map(&:raw)
-
- expect(latest_target_commits.count).to eq(1)
- expect(project.repository.ancestor?(source_branch, target_branch)).to be_truthy
- end
- end
-
- context 'when squash is enabled on merge request creation', :sidekiq_might_not_need_inline do
- before do
- visit project_new_merge_request_path(project, merge_request: { target_branch: 'master', source_branch: source_branch })
- check 'merge_request[squash]'
- click_on 'Submit merge request'
- wait_for_requests
- end
-
- it 'shows the squash checkbox as checked' do
- expect(page).to have_checked_field('squash')
- end
-
- context 'when accepting with squash checked' do
- before do
- accept_mr
- end
-
- include_examples 'squash'
- end
-
- context 'when accepting and unchecking squash' do
- before do
- uncheck 'squash'
- accept_mr
- end
-
- include_examples 'no squash'
- end
- end
-
- context 'when squash is not enabled on merge request creation', :sidekiq_might_not_need_inline do
- before do
- visit project_new_merge_request_path(project, merge_request: { target_branch: 'master', source_branch: source_branch })
- click_on 'Submit merge request'
- wait_for_requests
- end
-
- it 'shows the squash checkbox as unchecked' do
- expect(page).to have_unchecked_field('squash')
- end
-
- context 'when accepting and checking squash' do
- before do
- check 'squash'
- accept_mr
- end
-
- include_examples 'squash'
- end
-
- context 'when accepting with squash unchecked' do
- before do
- accept_mr
- end
-
- include_examples 'no squash'
- end
- end
-end
diff --git a/spec/features/merge_requests/user_views_diffs_commit_spec.rb b/spec/features/merge_requests/user_views_diffs_commit_spec.rb
deleted file mode 100644
index cf92603972e..00000000000
--- a/spec/features/merge_requests/user_views_diffs_commit_spec.rb
+++ /dev/null
@@ -1,19 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe 'User views diff by commit', :js do
- let(:merge_request) do
- create(:merge_request_with_diffs, source_project: project, target_project: project, source_branch: 'merge-test')
- end
-
- let(:project) { create(:project, :public, :repository) }
-
- before do
- visit(diffs_project_merge_request_path(project, merge_request, commit_id: merge_request.diff_head_sha))
- end
-
- it 'shows full commit description by default' do
- expect(page).to have_selector('.commit-row-description', visible: true)
- end
-end