summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2016-05-31 11:14:15 +0100
committerAlfredo Sumaran <alfredo@gitlab.com>2016-06-03 17:14:23 -0500
commit165d799fb3ca36768497d964619ceeacf2deeae3 (patch)
tree1c83422f67507ca7bbaca4b3617f3fdabe3de746
parentd78fd6df0c21f56887d1ca76cb5a40c16d3552b0 (diff)
downloadgitlab-ce-165d799fb3ca36768497d964619ceeacf2deeae3.tar.gz
Allow bulk-updating to remove all labels
Instead of passing `remove_label_ids`, just pass an empty array for `label_ids` (and don't pass `add_label_ids` or `remove_label_ids`).
-rw-r--r--app/services/issues/bulk_update_service.rb2
-rw-r--r--spec/services/issues/bulk_update_service_spec.rb8
2 files changed, 9 insertions, 1 deletions
diff --git a/app/services/issues/bulk_update_service.rb b/app/services/issues/bulk_update_service.rb
index 2772add1d02..15825b81685 100644
--- a/app/services/issues/bulk_update_service.rb
+++ b/app/services/issues/bulk_update_service.rb
@@ -4,7 +4,7 @@ module Issues
issues_ids = params.delete(:issues_ids).split(",")
issue_params = params
- [:state_event, :milestone_id, :assignee_id, :label_ids, :add_label_ids, :remove_label_ids].each do |key|
+ %i(state_event milestone_id assignee_id add_label_ids remove_label_ids).each do |key|
issue_params.delete(key) unless issue_params[key].present?
end
diff --git a/spec/services/issues/bulk_update_service_spec.rb b/spec/services/issues/bulk_update_service_spec.rb
index c777d475dd4..ad19fe0f151 100644
--- a/spec/services/issues/bulk_update_service_spec.rb
+++ b/spec/services/issues/bulk_update_service_spec.rb
@@ -148,6 +148,14 @@ describe Issues::BulkUpdateService, services: true do
it 'does not update issues not passed in' do
expect(issue_bug_and_regression.label_ids).to contain_exactly(bug.id, regression.id)
end
+
+ context 'when those label IDs are empty' do
+ let(:labels) { [] }
+
+ it 'updates the issues passed to have no labels' do
+ expect(issues.map(&:reload).map(&:label_ids)).to all(be_empty)
+ end
+ end
end
context 'when add_label_ids are passed' do