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
24 lines
543 B
Ruby
24 lines
543 B
Ruby
require 'rails_helper'
|
|
|
|
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
|