Commit d84f1180 authored by Alfredo Sumaran's avatar Alfredo Sumaran

Bulk assignment tests

parent dbf9df1d
...@@ -7,21 +7,22 @@ feature 'Issues > Labels bulk assignment', feature: true do ...@@ -7,21 +7,22 @@ feature 'Issues > Labels bulk assignment', feature: true do
let!(:project) { create(:project) } let!(:project) { create(:project) }
let!(:issue1) { create(:issue, project: project, title: "Issue 1") } let!(:issue1) { create(:issue, project: project, title: "Issue 1") }
let!(:issue2) { create(:issue, project: project, title: "Issue 2") } let!(:issue2) { create(:issue, project: project, title: "Issue 2") }
let!(:bug) { create(:label, project: project, title: 'bug') }
before do let!(:feature) { create(:label, project: project, title: 'feature') }
create(:label, project: project, title: 'bug')
create(:label, project: project, title: 'feature')
end
context 'as a allowed user', js: true do context 'as a allowed user', js: true do
before do before do
project.team << [user, :master] project.team << [user, :master]
login_as user login_as user
end
context 'can bulk assign' do
before do
visit namespace_project_issues_path(project.namespace, project) visit namespace_project_issues_path(project.namespace, project)
end end
context 'can bulk assign a label' do context 'a label' do
context 'to all issues' do context 'to all issues' do
before do before do
check 'check_all_issues' check 'check_all_issues'
...@@ -49,7 +50,7 @@ feature 'Issues > Labels bulk assignment', feature: true do ...@@ -49,7 +50,7 @@ feature 'Issues > Labels bulk assignment', feature: true do
end end
end end
context 'can bulk assign multiple labels' do context 'multiple labels' do
context 'to all issues' do context 'to all issues' do
before do before do
check 'check_all_issues' check 'check_all_issues'
...@@ -82,6 +83,72 @@ feature 'Issues > Labels bulk assignment', feature: true do ...@@ -82,6 +83,72 @@ feature 'Issues > Labels bulk assignment', feature: true do
end end
end end
context 'can bulk un-assign' do
context 'all labels to all issues' do
before do
issue1.labels << bug
issue1.labels << feature
issue2.labels << bug
issue2.labels << feature
visit namespace_project_issues_path(project.namespace, project)
check 'check_all_issues'
unmark_labels_in_dropdown ['bug', 'feature']
click_button 'Update issues'
end
it do
expect(find("#issue_#{issue1.id}")).not_to have_content 'bug'
expect(find("#issue_#{issue1.id}")).not_to have_content 'feature'
expect(find("#issue_#{issue2.id}")).not_to have_content 'bug'
expect(find("#issue_#{issue2.id}")).not_to have_content 'feature'
end
end
context 'a label to a issue' do
before do
issue1.labels << bug
issue2.labels << feature
visit namespace_project_issues_path(project.namespace, project)
check_issue issue1
unmark_labels_in_dropdown ['bug']
click_button 'Update issues'
end
it do
expect(find("#issue_#{issue1.id}")).not_to have_content 'bug'
expect(find("#issue_#{issue2.id}")).to have_content 'feature'
end
end
context 'a label and keep the others label' do
before do
issue1.labels << bug
issue1.labels << feature
issue2.labels << bug
issue2.labels << feature
visit namespace_project_issues_path(project.namespace, project)
check_issue issue1
check_issue issue2
unmark_labels_in_dropdown ['bug']
click_button 'Update issues'
end
it do
expect(find("#issue_#{issue1.id}")).not_to have_content 'bug'
expect(find("#issue_#{issue1.id}")).to have_content 'feature'
expect(find("#issue_#{issue2.id}")).not_to have_content 'bug'
expect(find("#issue_#{issue2.id}")).to have_content 'feature'
end
end
end
end
context 'as a guest' do context 'as a guest' do
before do before do
login_as user login_as user
...@@ -97,13 +164,28 @@ feature 'Issues > Labels bulk assignment', feature: true do ...@@ -97,13 +164,28 @@ feature 'Issues > Labels bulk assignment', feature: true do
end end
end end
def open_labels_dropdown(items = []) def open_labels_dropdown(items = [], unmark = false)
page.within('.issues_bulk_update') do page.within('.issues_bulk_update') do
click_button 'Label' click_button 'Label'
wait_for_ajax wait_for_ajax
items.map do |item| items.map do |item|
click_link item click_link item
end end
if unmark
items.map do |item|
click_link item
end
end
end
end
def unmark_labels_in_dropdown(items = [])
open_labels_dropdown(items, true)
end
def check_issue(issue)
page.within('.issues-list') do
check "selected_issue_#{issue.id}"
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment