diff options
Diffstat (limited to 'spec/finders/labels_finder_spec.rb')
-rw-r--r-- | spec/finders/labels_finder_spec.rb | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/spec/finders/labels_finder_spec.rb b/spec/finders/labels_finder_spec.rb index e344591dd5d..41224f0a5c5 100644 --- a/spec/finders/labels_finder_spec.rb +++ b/spec/finders/labels_finder_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe LabelsFinder do +RSpec.describe LabelsFinder, feature_category: :team_planning do describe '#execute' do let_it_be(:group_1) { create(:group) } let_it_be(:group_2) { create(:group) } @@ -20,10 +20,12 @@ RSpec.describe LabelsFinder do let_it_be(:project_label_2) { create(:label, project: project_2, title: 'Label 2') } let_it_be(:project_label_4) { create(:label, project: project_4, title: 'Label 4') } let_it_be(:project_label_5) { create(:label, project: project_5, title: 'Label 5') } + let_it_be(:project_label_locked) { create(:label, project: project_1, title: 'Label Locked', lock_on_merge: true) } let_it_be(:group_label_1) { create(:group_label, group: group_1, title: 'Label 1 (group)') } let_it_be(:group_label_2) { create(:group_label, group: group_1, title: 'Group Label 2') } let_it_be(:group_label_3) { create(:group_label, group: group_2, title: 'Group Label 3') } + let_it_be(:group_label_locked) { create(:group_label, group: group_1, title: 'Group Label Locked', lock_on_merge: true) } let_it_be(:private_group_label_1) { create(:group_label, group: private_group_1, title: 'Private Group Label 1') } let_it_be(:private_subgroup_label_1) { create(:group_label, group: private_subgroup_1, title: 'Private Sub Group Label 1') } @@ -42,7 +44,7 @@ RSpec.describe LabelsFinder do finder = described_class.new(user) - expect(finder.execute).to match_array([group_label_2, group_label_3, project_label_1, group_label_1, project_label_2, project_label_4]) + expect(finder.execute).to match_array([group_label_2, group_label_3, group_label_locked, project_label_1, group_label_1, project_label_2, project_label_4, project_label_locked]) end it 'returns labels available if nil title is supplied' do @@ -50,7 +52,7 @@ RSpec.describe LabelsFinder do # params[:title] will return `nil` regardless whether it is specified finder = described_class.new(user, title: nil) - expect(finder.execute).to match_array([group_label_2, group_label_3, project_label_1, group_label_1, project_label_2, project_label_4]) + expect(finder.execute).to match_array([group_label_2, group_label_3, group_label_locked, project_label_1, group_label_1, project_label_2, project_label_4, project_label_locked]) end end @@ -60,7 +62,7 @@ RSpec.describe LabelsFinder do ::Projects::UpdateService.new(project_1, user, archived: true).execute finder = described_class.new(user, **group_params(group_1)) - expect(finder.execute).to match_array([group_label_2, group_label_1, project_label_5]) + expect(finder.execute).to match_array([group_label_2, group_label_1, project_label_5, group_label_locked]) end context 'when only_group_labels is true' do @@ -69,7 +71,7 @@ RSpec.describe LabelsFinder do finder = described_class.new(user, only_group_labels: true, **group_params(group_1)) - expect(finder.execute).to match_array([group_label_2, group_label_1]) + expect(finder.execute).to match_array([group_label_2, group_label_1, group_label_locked]) end end @@ -249,7 +251,7 @@ RSpec.describe LabelsFinder do it 'returns labels available for the project' do finder = described_class.new(user, project_id: project_1.id) - expect(finder.execute).to match_array([group_label_2, project_label_1, group_label_1]) + expect(finder.execute).to match_array([group_label_2, group_label_locked, project_label_1, project_label_locked, group_label_1]) end context 'as an administrator' do @@ -330,6 +332,14 @@ RSpec.describe LabelsFinder do end end + context 'filter by locked labels' do + it 'returns labels that are locked' do + finder = described_class.new(user, locked_labels: true) + + expect(finder.execute).to match_array([project_label_locked, group_label_locked]) + end + end + context 'external authorization' do it_behaves_like 'a finder with external authorization service' do let!(:subject) { create(:label, project: project) } |