Validate ValuatorGroup#name presence & uniqueness

Why:

ValuatorGroup name should be unique and present to be able to identify
correctly each of them.

How:
  - Adding a presence & uniqueness validation at the model
  - Adding a sequenced value for name attribute at its factory
  - Adding missing model spec that covers validations
This commit is contained in:
Bertocq
2018-03-13 18:27:55 +01:00
parent 1692abc54a
commit 48286f7de9
3 changed files with 24 additions and 1 deletions

View File

@@ -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'
validates :name, presence: true, uniqueness: true
end

View File

@@ -62,6 +62,7 @@ FactoryBot.define do
end
factory :valuator_group, class: ValuatorGroup do
sequence(:name) { |n| "Valuator Group #{n}" }
end
factory :identity do

View File

@@ -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