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:
@@ -2,4 +2,6 @@ class ValuatorGroup < ActiveRecord::Base
|
|||||||
has_many :valuators
|
has_many :valuators
|
||||||
has_many :valuator_group_assignments, dependent: :destroy, class_name: 'Budget::ValuatorGroupAssignment'
|
has_many :valuator_group_assignments, dependent: :destroy, class_name: 'Budget::ValuatorGroupAssignment'
|
||||||
has_many :investments, through: :valuator_group_assignments, class_name: 'Budget::Investment'
|
has_many :investments, through: :valuator_group_assignments, class_name: 'Budget::Investment'
|
||||||
end
|
|
||||||
|
validates :name, presence: true, uniqueness: true
|
||||||
|
end
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ FactoryBot.define do
|
|||||||
end
|
end
|
||||||
|
|
||||||
factory :valuator_group, class: ValuatorGroup do
|
factory :valuator_group, class: ValuatorGroup do
|
||||||
|
sequence(:name) { |n| "Valuator Group #{n}" }
|
||||||
end
|
end
|
||||||
|
|
||||||
factory :identity do
|
factory :identity do
|
||||||
|
|||||||
20
spec/models/valuator_group_spec.rb
Normal file
20
spec/models/valuator_group_spec.rb
Normal 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
|
||||||
Reference in New Issue
Block a user