Merge pull request #2576 from consul/refactor_for_valuator_groups
Add Valuator Group name validation & related specs
This commit is contained in:
@@ -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
|
||||
|
||||
validates :name, presence: true, uniqueness: true
|
||||
end
|
||||
|
||||
@@ -62,6 +62,7 @@ FactoryBot.define do
|
||||
end
|
||||
|
||||
factory :valuator_group, class: ValuatorGroup do
|
||||
sequence(:name) { |n| "Valuator Group #{n}" }
|
||||
end
|
||||
|
||||
factory :identity do
|
||||
|
||||
@@ -340,6 +340,24 @@ describe Budget::Investment do
|
||||
end
|
||||
end
|
||||
|
||||
describe "#by_valuator_group" do
|
||||
|
||||
it "returns investments assigned to a valuator's group" do
|
||||
valuator = create(:valuator)
|
||||
valuator_group = create(:valuator_group, valuators: [valuator])
|
||||
assigned_investment = create(:budget_investment, valuators: [valuator],
|
||||
valuator_groups: [valuator_group])
|
||||
another_assigned_investment = create(:budget_investment, valuator_groups: [valuator_group])
|
||||
unassigned_investment = create(:budget_investment, valuators: [valuator], valuator_groups: [])
|
||||
create(:budget_investment, valuators: [valuator], valuator_groups: [create(:valuator_group)])
|
||||
|
||||
by_valuator_group = described_class.by_valuator_group(valuator.valuator_group_id)
|
||||
|
||||
expect(by_valuator_group.size).to eq(2)
|
||||
expect(by_valuator_group).to contain_exactly(assigned_investment, another_assigned_investment)
|
||||
end
|
||||
end
|
||||
|
||||
describe "scopes" do
|
||||
describe "valuation_open" do
|
||||
it "returns all investments with false valuation_finished" 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