diff --git a/spec/models/budget/group_spec.rb b/spec/models/budget/group_spec.rb index 073d05b4d..4d2570b59 100644 --- a/spec/models/budget/group_spec.rb +++ b/spec/models/budget/group_spec.rb @@ -4,4 +4,20 @@ describe Budget::Group do it_behaves_like "sluggable" + let(:budget) { create(:budget) } + + describe "name" do + before do + create(:budget_group, budget: budget, name: 'object name') + end + + it "can be repeatead in other budget's groups" do + expect(build(:budget_group, budget: create(:budget), name: 'object name')).to be_valid + end + + it "must be unique among all budget's groups" do + expect(build(:budget_group, budget: budget, name: 'object name')).not_to be_valid + end + end + end diff --git a/spec/models/budget/heading_spec.rb b/spec/models/budget/heading_spec.rb index f62bad570..ee2e4c142 100644 --- a/spec/models/budget/heading_spec.rb +++ b/spec/models/budget/heading_spec.rb @@ -4,4 +4,25 @@ describe Budget::Heading do it_behaves_like "sluggable" + let(:budget) { create(:budget) } + let(:group) { create(:budget_group, budget: budget) } + + describe "name" do + before do + create(:budget_heading, group: group, name: 'object name') + end + + it "can be repeatead in other budget's groups" do + expect(build(:budget_heading, group: create(:budget_group), name: 'object name')).to be_valid + end + + it "must be unique among all budget's groups" do + expect(build(:budget_heading, group: create(:budget_group, budget: budget), name: 'object name')).not_to be_valid + end + + it "must be unique among all it's group" do + expect(build(:budget_heading, group: group, name: 'object name')).not_to be_valid + end + end + end diff --git a/spec/models/budget_spec.rb b/spec/models/budget_spec.rb index b91fcc6e0..d3a7574e3 100644 --- a/spec/models/budget_spec.rb +++ b/spec/models/budget_spec.rb @@ -4,6 +4,16 @@ describe Budget do it_behaves_like "sluggable" + describe "name" do + before do + create(:budget, name: 'object name') + end + + it "is validated for uniqueness" do + expect(build(:budget, name: 'object name')).not_to be_valid + end + end + describe "description" do it "changes depending on the phase" do budget = create(:budget)