Extract EE specific files/lines for spec/features/merge_request
We have the following files containing EE specific code. We should move them to ee/
spec/features/merge_request/user_creates_merge_request_spec.rb
diff --git a/spec/features/merge_request/user_creates_merge_request_spec.rb b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/features/merge_request/user_creates_merge_request_spec.rb
index ea2bb1503bb..061a4c4f633 100644
--- a/spec/features/merge_request/user_creates_merge_request_spec.rb
+++ b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/features/merge_request/user_creates_merge_request_spec.rb
@@ -3,19 +3,33 @@ require "spec_helper"
describe "User creates a merge request", :js do
include ProjectForksHelper
+ let(:approver) { create(:user) }
+ let(:project) do
+ create(:project,
+ :repository,
+ approvals_before_merge: 1,
+ merge_requests_template: template_text)
+ end
+ let(:template_text) { "This merge request should contain the following." }
let(:title) { "Some feature" }
- let(:project) { create(:project, :repository) }
let(:user) { create(:user) }
+ let(:user2) { create(:user) }
before do
stub_feature_flags(approval_rules: false)
project.add_maintainer(user)
+ project.add_maintainer(user2)
+ project.add_maintainer(approver)
sign_in(user)
+
+ project.approvers.create(user_id: approver.id)
+
+ visit(project_new_merge_request_path(project))
end
it "creates a merge request" do
- visit(project_new_merge_request_path(project))
+ allow_any_instance_of(Gitlab::AuthorityAnalyzer).to receive(:calculate).and_return([user2])
find(".js-source-branch").click
click_link("fix")
@@ -25,12 +39,38 @@ describe "User creates a merge request", :js do
click_button("Compare branches")
+ expect(find_field("merge_request_description").value).to eq(template_text)
+
+ # Approvers
+ page.within("ul .unsaved-approvers") do
+ expect(page).to have_content(approver.name)
+ end
+
+ page.within(".suggested-approvers") do
+ expect(page).to have_content(user2.name)
+ end
+
+ click_link(user2.name)
+
+ page.within("ul.approver-list") do
+ expect(page).to have_content(user2.name)
+ end
+ # End of approvers
+
fill_in("Title", with: title)
click_button("Submit merge request")
page.within(".merge-request") do
expect(page).to have_content(title)
end
+
+ page.within(".js-issuable-actions") do
+ click_link("Edit", match: :first)
+ end
+
+ page.within("ul.approver-list") do
+ expect(page).to have_content(user2.name)
+ end
end
context "to a forked project" do
spec/features/merge_request/user_sees_closing_issues_message_spec.rb
diff --git a/spec/features/merge_request/user_sees_closing_issues_message_spec.rb b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/features/merge_request/user_sees_closing_issues_message_spec.rb
index d7c784b14c5..4bea8656033 100644
--- a/spec/features/merge_request/user_sees_closing_issues_message_spec.rb
+++ b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/features/merge_request/user_sees_closing_issues_message_spec.rb
@@ -73,4 +73,18 @@ describe 'Merge request > User sees closing issues message', :js do
expect(page).to have_content("Mentions #{issue_2.to_reference}")
end
end
+
+ context 'approvals are enabled while closing issues', :js do
+ before do
+ project.add_developer(user)
+ end
+
+ let(:project) { create(:project, :public, :repository, approvals_before_merge: 1) }
+ let(:merge_request_description) { "Description\n\nclosing #{issue_1.to_reference}, #{issue_2.to_reference}" }
+
+ it 'displays closing issue message exactly one time' do
+ wait_for_requests
+ expect(page).to have_content("Closes #{issue_1.to_reference} and #{issue_2.to_reference}", count: 1)
+ end
+ end
end
spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
diff --git a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
index ae41cf90576..63c083328e3 100644
--- a/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
+++ b/home/yorickpeterse/Projects/gitlab/gdk-ee/gitlab/spec/features/merge_request/user_selects_branches_for_new_mr_spec.rb
@@ -86,6 +86,27 @@ describe 'Merge request > User selects branches for new MR', :js do
expect(target_items.count).to be > 1
end
+ context 'when approvals are enabled for the target project' do
+ before do
+ project.update(approvals_before_merge: 1)
+
+ visit project_new_merge_request_path(project, merge_request: { target_branch: 'master', source_branch: 'feature_conflict' })
+ end
+
+ it 'shows approval settings' do
+ expect(page).to have_content('Approvers')
+ end
+
+ context 'saving the MR' do
+ it 'shows the saved MR' do
+ fill_in 'merge_request_title', with: 'Test'
+ click_button 'Submit merge request'
+
+ expect(page).to have_link('Close merge request')
+ end
+ end
+ end
+
context 'when target project cannot be viewed by the current user' do
it 'does not leak the private project name & namespace' do
private_project = create(:project, :private, :repository)
Edited by Coung Ngo