summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Sumaran <alfredo@gitlab.com>2017-04-28 03:05:09 -0500
committerAlfredo Sumaran <alfredo@gitlab.com>2017-05-03 13:42:55 -0500
commita1726b709d99f6c2b480ebee40ab82f1c32577df (patch)
tree4612ade657759d607b7345b7059a869a68d1e8b9
parent1fd25bf858095587bd0eb9210ce54d95dbf15cfb (diff)
downloadgitlab-ce-a1726b709d99f6c2b480ebee40ab82f1c32577df.tar.gz
Fixes failing tests and consolidate feature tests into one file
-rw-r--r--app/views/projects/issues/_new_branch.html.haml2
-rw-r--r--spec/features/issues/create_branch_merge_request_spec.rb55
-rw-r--r--spec/features/issues/new_branch_button_spec.rb62
3 files changed, 47 insertions, 72 deletions
diff --git a/app/views/projects/issues/_new_branch.html.haml b/app/views/projects/issues/_new_branch.html.haml
index 56c6f335f3d..0bd930094ef 100644
--- a/app/views/projects/issues/_new_branch.html.haml
+++ b/app/views/projects/issues/_new_branch.html.haml
@@ -8,7 +8,7 @@
%button.btn.btn-inverted.disabled.dropdown-toggle{ type: 'button', disabled: 'disabled' }
= icon('caret-down')
.btn-group.available.hide
- %input.btn.js-create-merge-request.btn-inverted.btn-success{ type: 'submit', value: 'Create merge request', data: { action: 'create-mr' } }
+ %input.btn.js-create-merge-request.btn-inverted.btn-success{ type: 'button', value: 'Create merge request', data: { action: 'create-mr' } }
%button.btn.btn-inverted.dropdown-toggle.btn-inverted.btn-success.js-dropdown-toggle{ type: 'button', data: { 'dropdown-trigger' => '#create-merge-request-dropdown' } }
= icon('caret-down')
%ul#create-merge-request-dropdown.dropdown-menu.dropdown-menu-align-right{ data: { dropdown: true } }
diff --git a/spec/features/issues/create_branch_merge_request_spec.rb b/spec/features/issues/create_branch_merge_request_spec.rb
index 47d9c92c21b..da76e0ffd7e 100644
--- a/spec/features/issues/create_branch_merge_request_spec.rb
+++ b/spec/features/issues/create_branch_merge_request_spec.rb
@@ -2,17 +2,18 @@ require 'rails_helper'
feature 'Create Branch/Merge Request Dropdown on issue page', feature: true, js: true do
let(:user) { create(:user) }
- let(:project) { create(:project_empty_repo) }
+ let!(:project) { create(:project) }
let(:issue) { create(:issue, project: project, title: 'Cherry-Coloured Funk') }
- context 'as an author' do
+ context 'for team members' do
before do
project.team << [user, :developer]
login_as(user)
- visit namespace_project_issue_path(project.namespace, project, issue)
end
it 'I can create a merge request from issue page' do
+ visit namespace_project_issue_path(project.namespace, project, issue)
+
select_dropdown_option('create-mr')
wait_for_ajax
@@ -27,6 +28,8 @@ feature 'Create Branch/Merge Request Dropdown on issue page', feature: true, js:
end
it 'I can creates a branch from issue page' do
+ visit namespace_project_issue_path(project.namespace, project, issue)
+
select_dropdown_option('create-branch')
wait_for_ajax
@@ -35,20 +38,54 @@ feature 'Create Branch/Merge Request Dropdown on issue page', feature: true, js:
expect(current_path).to eq namespace_project_tree_path(project.namespace, project, '1-cherry-coloured-funk')
end
- def select_dropdown_option(option)
- find('.create-mr-dropdown-wrap .dropdown-toggle').click
- find("li[data-value='#{option}']").click
- find('.js-create-merge-request').click
+ context "when there is a referenced merge request" do
+ let!(:note) do
+ create(:note, :on_issue, :system, project: project, noteable: issue,
+ note: "mentioned in #{referenced_mr.to_reference}")
+ end
+
+ let(:referenced_mr) do
+ create(:merge_request, :simple, source_project: project, target_project: project,
+ description: "Fixes #{issue.to_reference}", author: user)
+ end
+
+ before do
+ referenced_mr.cache_merge_request_closes_issues!(user)
+
+ visit namespace_project_issue_path(project.namespace, project, issue)
+ end
+
+ it 'disables the create branch button' do
+ expect(page).to have_css('.create-mr-dropdown-wrap .unavailable:not(.hide)')
+ expect(page).to have_css('.create-mr-dropdown-wrap .available.hide', visible: false)
+ expect(page).to have_content /1 Related Merge Request/
+ end
+ end
+
+ context 'when issue is confidential' do
+ it 'disables the create branch button' do
+ issue = create(:issue, :confidential, project: project)
+
+ visit namespace_project_issue_path(project.namespace, project, issue)
+
+ expect(page).not_to have_css('.create-mr-dropdown-wrap')
+ end
end
end
- context 'logged out' do
+ context 'for visitors' do
before do
visit namespace_project_issue_path(project.namespace, project, issue)
end
- it 'does not have the dropdown' do
+ it 'shows no buttons' do
expect(page).not_to have_selector('.create-mr-dropdown-wrap')
end
end
+
+ def select_dropdown_option(option)
+ find('.create-mr-dropdown-wrap .dropdown-toggle').click
+ find("li[data-value='#{option}']").click
+ find('.js-create-merge-request').click
+ end
end
diff --git a/spec/features/issues/new_branch_button_spec.rb b/spec/features/issues/new_branch_button_spec.rb
deleted file mode 100644
index c0ab42c6822..00000000000
--- a/spec/features/issues/new_branch_button_spec.rb
+++ /dev/null
@@ -1,62 +0,0 @@
-require 'rails_helper'
-
-feature 'Start new branch from an issue', feature: true, js: true do
- let!(:project) { create(:project) }
- let!(:issue) { create(:issue, project: project) }
- let!(:user) { create(:user)}
-
- context "for team members" do
- before do
- project.team << [user, :master]
- login_as(user)
- end
-
- it 'shows the new branch button' do
- visit namespace_project_issue_path(project.namespace, project, issue)
-
- expect(page).to have_css('#new-branch .available')
- end
-
- context "when there is a referenced merge request" do
- let!(:note) do
- create(:note, :on_issue, :system, project: project, noteable: issue,
- note: "mentioned in #{referenced_mr.to_reference}")
- end
-
- let(:referenced_mr) do
- create(:merge_request, :simple, source_project: project, target_project: project,
- description: "Fixes #{issue.to_reference}", author: user)
- end
-
- before do
- referenced_mr.cache_merge_request_closes_issues!(user)
-
- visit namespace_project_issue_path(project.namespace, project, issue)
- end
-
- it "hides the new branch button" do
- expect(page).to have_css('#new-branch .unavailable')
- expect(page).not_to have_css('#new-branch .available')
- expect(page).to have_content /1 Related Merge Request/
- end
- end
-
- context 'when issue is confidential' do
- it 'hides the new branch button' do
- issue = create(:issue, :confidential, project: project)
-
- visit namespace_project_issue_path(project.namespace, project, issue)
-
- expect(page).not_to have_css('#new-branch')
- end
- end
- end
-
- context 'for visitors' do
- it 'shows no buttons' do
- visit namespace_project_issue_path(project.namespace, project, issue)
-
- expect(page).not_to have_css('#new-branch')
- end
- end
-end