Increase Budget, Heading and Group model specs to cover slug uniqueness
Why: * Slug must be unique among: 1. Budget slug: among other budgets 2. Group slug: among other groups from its budget 3. Heading slug: among other headings from all the groups from its budget How: * Adding checks for all possible scenarios on each model specs
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user