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:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-09-07 13:54:39 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2016-09-08 11:52:20 +0300
commitaf9dc9736eadb3ab31c97219fb73a5e9136b0ad0 (patch)
tree7a7c117114016ae0f1aa3a1eb642dc6dfb28d3a9 /spec/features/merge_requests/update_merge_requests_spec.rb
parentf28ca293b78405d798f1df78a39d549157a57c07 (diff)
Make merge requests bulk update working
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Diffstat (limited to 'spec/features/merge_requests/update_merge_requests_spec.rb')
-rw-r--r--spec/features/merge_requests/update_merge_requests_spec.rb111
1 files changed, 111 insertions, 0 deletions
diff --git a/spec/features/merge_requests/update_merge_requests_spec.rb b/spec/features/merge_requests/update_merge_requests_spec.rb
new file mode 100644
index 00000000000..8b2636d07db
--- /dev/null
+++ b/spec/features/merge_requests/update_merge_requests_spec.rb
@@ -0,0 +1,111 @@
+require 'rails_helper'
+
+feature 'Multiple merge requests updating from merge_requests#index', feature: true do
+ include WaitForAjax
+
+ let!(:user) { create(:user)}
+ let!(:project) { create(:project) }
+ let!(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
+
+ before do
+ project.team << [user, :master]
+ login_as(user)
+ end
+
+ context 'status', js: true do
+ it 'sets to closed' do
+ visit namespace_project_merge_requests_path(project.namespace, project)
+
+ find('#check_all_issues').click
+ find('.js-issue-status').click
+
+ find('.dropdown-menu-status a', text: 'Closed').click
+ click_update_merge_requests_button
+ expect(page).to have_selector('.merge-request', count: 0)
+ end
+
+ it 'sets to open' do
+ merge_request.close
+ visit namespace_project_merge_requests_path(project.namespace, project, state: 'closed')
+
+ find('#check_all_issues').click
+ find('.js-issue-status').click
+
+ find('.dropdown-menu-status a', text: 'Open').click
+ click_update_merge_requests_button
+ expect(page).to have_selector('.merge-request', count: 0)
+ end
+ end
+
+ context 'assignee', js: true do
+ it 'updates to current user' do
+ visit namespace_project_merge_requests_path(project.namespace, project)
+
+ find('#check_all_issues').click
+ click_update_assignee_button
+
+ find('.dropdown-menu-user-link', text: user.username).click
+ click_update_merge_requests_button
+
+ page.within('.merge-request .controls') do
+ expect(find('.author_link')["title"]).to have_content(user.name)
+ end
+ end
+
+ it 'updates to unassigned' do
+ merge_request.assignee = user
+ merge_request.save
+ visit namespace_project_merge_requests_path(project.namespace, project)
+
+ find('#check_all_issues').click
+ click_update_assignee_button
+
+ click_link 'Unassigned'
+ click_update_merge_requests_button
+ expect(find('.merge-request:first-child .controls')).not_to have_css('.author_link')
+ end
+ end
+
+ context 'milestone', js: true do
+ let(:milestone) { create(:milestone, project: project) }
+
+ it 'updates milestone' do
+ visit namespace_project_merge_requests_path(project.namespace, project)
+
+ find('#check_all_issues').click
+ find('.issues_bulk_update .js-milestone-select').click
+
+ find('.dropdown-menu-milestone a', text: milestone.title).click
+ click_update_merge_requests_button
+
+ expect(find('.merge-request')).to have_content milestone.title
+ end
+
+ it 'sets to no milestone' do
+ merge_request.milestone = milestone
+ merge_request.save
+
+ visit namespace_project_merge_requests_path(project.namespace, project)
+
+ expect(first('.merge-request')).to have_content milestone.title
+
+ find('#check_all_issues').click
+ find('.issues_bulk_update .js-milestone-select').click
+
+ find('.dropdown-menu-milestone a', text: "No Milestone").click
+ click_update_merge_requests_button
+
+ expect(find('.merge-request:first-child')).not_to have_content milestone.title
+ end
+ end
+
+ def click_update_assignee_button
+ find('.js-update-assignee').click
+ wait_for_ajax
+ end
+
+ def click_update_merge_requests_button
+ find('.update_selected_issues').click
+ wait_for_ajax
+ end
+end