diff --git a/app/models/valuator_group.rb b/app/models/valuator_group.rb index c5bf8d29b..61a4e4458 100644 --- a/app/models/valuator_group.rb +++ b/app/models/valuator_group.rb @@ -2,4 +2,6 @@ class ValuatorGroup < ActiveRecord::Base has_many :valuators has_many :valuator_group_assignments, dependent: :destroy, class_name: 'Budget::ValuatorGroupAssignment' has_many :investments, through: :valuator_group_assignments, class_name: 'Budget::Investment' -end \ No newline at end of file + + validates :name, presence: true, uniqueness: true +end diff --git a/spec/factories.rb b/spec/factories.rb index 05ddd2fc0..8f872daaf 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -62,6 +62,7 @@ FactoryBot.define do end factory :valuator_group, class: ValuatorGroup do + sequence(:name) { |n| "Valuator Group #{n}" } end factory :identity do diff --git a/spec/models/valuator_group_spec.rb b/spec/models/valuator_group_spec.rb new file mode 100644 index 000000000..98a1effd8 --- /dev/null +++ b/spec/models/valuator_group_spec.rb @@ -0,0 +1,20 @@ +require 'rails_helper' + +describe ValuatorGroup do + + describe 'Validations' do + it "should be valid" do + expect(build(:valuator_group)).to be_valid + end + + it "should not be valid without a name" do + expect(build(:valuator_group, name: nil)).not_to be_valid + end + + it "should not be valid with the same name as an existing one" do + create(:valuator_group, name: 'The Valuators') + + expect(build(:valuator_group, name: 'The Valuators')).not_to be_valid + end + end +end