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`).
This commit is contained in:
Sean McGivern 2016-05-31 11:14:15 +01:00 committed by Alfredo Sumaran
parent d78fd6df0c
commit 165d799fb3
2 changed files with 9 additions and 1 deletions

View file

@ -4,7 +4,7 @@ module Issues
issues_ids = params.delete(:issues_ids).split(",") issues_ids = params.delete(:issues_ids).split(",")
issue_params = params 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? issue_params.delete(key) unless issue_params[key].present?
end end

View file

@ -148,6 +148,14 @@ describe Issues::BulkUpdateService, services: true do
it 'does not update issues not passed in' do it 'does not update issues not passed in' do
expect(issue_bug_and_regression.label_ids).to contain_exactly(bug.id, regression.id) expect(issue_bug_and_regression.label_ids).to contain_exactly(bug.id, regression.id)
end 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 end
context 'when add_label_ids are passed' do context 'when add_label_ids are passed' do