summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Sumaran <alfredo@gitlab.com>2017-04-26 23:45:46 -0500
committerAlfredo Sumaran <alfredo@gitlab.com>2017-05-03 13:42:54 -0500
commit830ab89458a8e2f4170c83a05c14037385703a58 (patch)
tree0737c1fe4d6e04428e11987ea0a50156fecd0f93
parentce49bb508a164b95b14c606729e337598f86887b (diff)
downloadgitlab-ce-830ab89458a8e2f4170c83a05c14037385703a58.tar.gz
Add feature tests for create branch/merge request dropdown on issue page
-rw-r--r--app/assets/javascripts/create_merge_request_dropdown.js1
-rw-r--r--spec/features/issues/create_branch_merge_request_spec.rb54
2 files changed, 55 insertions, 0 deletions
diff --git a/app/assets/javascripts/create_merge_request_dropdown.js b/app/assets/javascripts/create_merge_request_dropdown.js
index dc49092f187..b00e5f4614a 100644
--- a/app/assets/javascripts/create_merge_request_dropdown.js
+++ b/app/assets/javascripts/create_merge_request_dropdown.js
@@ -138,6 +138,7 @@ export default class CreateMergeRequestDropdown {
createMergeRequest() {
const xhr = $.ajax({
method: 'POST',
+ dataType: 'json',
url: this.wrapperEl.dataset.createMrPath,
});
diff --git a/spec/features/issues/create_branch_merge_request_spec.rb b/spec/features/issues/create_branch_merge_request_spec.rb
new file mode 100644
index 00000000000..47d9c92c21b
--- /dev/null
+++ b/spec/features/issues/create_branch_merge_request_spec.rb
@@ -0,0 +1,54 @@
+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(:issue) { create(:issue, project: project, title: 'Cherry-Coloured Funk') }
+
+ context 'as an author' 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
+ select_dropdown_option('create-mr')
+
+ wait_for_ajax
+
+ expect(page).to have_content("created branch 1-cherry-coloured-funk")
+ expect(page).to have_content("mentioned in merge request !1")
+
+ visit namespace_project_merge_request_path(project.namespace, project, MergeRequest.first)
+
+ expect(page).to have_content('WIP: Resolve "Cherry-Coloured Funk"')
+ expect(current_path).to eq(namespace_project_merge_request_path(project.namespace, project, MergeRequest.first))
+ end
+
+ it 'I can creates a branch from issue page' do
+ select_dropdown_option('create-branch')
+
+ wait_for_ajax
+
+ expect(page).to have_selector('.dropdown-toggle-text ', text: '1-cherry-coloured-funk')
+ 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
+ end
+ end
+
+ context 'logged out' do
+ before do
+ visit namespace_project_issue_path(project.namespace, project, issue)
+ end
+
+ it 'does not have the dropdown' do
+ expect(page).not_to have_selector('.create-mr-dropdown-wrap')
+ end
+ end
+end