Add restriction to number of permitted priorities per project label

parent 67314e95
class ProjectLabel < Label class ProjectLabel < Label
NUMBER_OF_PRIORITIES = 1
belongs_to :project belongs_to :project
validates :project, presence: true validates :project, presence: true
validate :permitted_numbers_of_priorities
validate :title_must_not_exist_at_group_level validate :title_must_not_exist_at_group_level
delegate :group, to: :project, allow_nil: true delegate :group, to: :project, allow_nil: true
...@@ -20,4 +23,10 @@ class ProjectLabel < Label ...@@ -20,4 +23,10 @@ class ProjectLabel < Label
errors.add(:title, :label_already_exists_at_group_level, group: group.name) errors.add(:title, :label_already_exists_at_group_level, group: group.name)
end end
end end
def permitted_numbers_of_priorities
if priorities && priorities.size >= NUMBER_OF_PRIORITIES
errors.add(:priorities, 'Number of permitted priorities exceeded')
end
end
end end
...@@ -48,7 +48,18 @@ describe ProjectLabel, models: true do ...@@ -48,7 +48,18 @@ describe ProjectLabel, models: true do
project_label.valid? project_label.valid?
expect(project_label .errors[:title]).to be_empty expect(project_label.errors[:title]).to be_empty
end
end
context 'when attempting to add more than one priority to the project label' do
it 'returns error' do
subject.priorities.build
subject.priorities.build
subject.valid?
expect(subject.errors[:priorities]).to include 'Number of permitted priorities exceeded'
end end
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment