From 165d799fb3ca36768497d964619ceeacf2deeae3 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Tue, 31 May 2016 11:14:15 +0100 Subject: [PATCH] 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`). --- app/services/issues/bulk_update_service.rb | 2 +- spec/services/issues/bulk_update_service_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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 -- GitLab