diff --git a/app/finders/labels_finder.rb b/app/finders/labels_finder.rb index 2291c64b84d83b93832e79c405eaa84910bda7b1..032172fdfa8872565cc54af0c014656a050a1b45 100644 --- a/app/finders/labels_finder.rb +++ b/app/finders/labels_finder.rb @@ -37,10 +37,13 @@ class LabelsFinder < UnionFinder def with_title(items) # Match no labels if an empty title is supplied to avoid matching all # labels (e.g. when an issue is moved) - return Label.none if params[:title] && params[:title].empty? + return items.none if raw_title && raw_title.empty? - items = items.where(title: title) if title - items + if title + items = items.where(title: title) + else + items + end end def group_id @@ -59,6 +62,10 @@ class LabelsFinder < UnionFinder params[:title].presence || params[:name].presence end + def raw_title + params[:title] || params[:name] + end + def project return @project if defined?(@project) diff --git a/spec/finders/labels_finder_spec.rb b/spec/finders/labels_finder_spec.rb index 114399ea3dc3f78f8d30d2615c20760a06c09389..eb8df8e2bb2dc4f43b45463e610921b403cd7231 100644 --- a/spec/finders/labels_finder_spec.rb +++ b/spec/finders/labels_finder_spec.rb @@ -65,11 +65,23 @@ describe LabelsFinder do expect(finder.execute).to eq [group_label_2] end + it 'returns label with title alias' do + finder = described_class.new(user, name: 'Group Label 2') + + expect(finder.execute).to eq [group_label_2] + end + it 'returns no labels if empty titles are supplied' do finder = described_class.new(user, title: []) expect(finder.execute).to be_empty end + + it 'returns no labels if empty names are supplied' do + finder = described_class.new(user, name: []) + + expect(finder.execute).to be_empty + end end end end