57 lines
1.6 KiB
Ruby
57 lines
1.6 KiB
Ruby
require "rails_helper"
|
|
|
|
describe "Budget Groups" do
|
|
|
|
let(:budget) { create(:budget, slug: "budget_slug") }
|
|
let!(:group) { create(:budget_group, slug: "group_slug", budget: budget) }
|
|
|
|
context "Load" do
|
|
|
|
scenario "finds group using budget slug and group slug" do
|
|
visit budget_group_path("budget_slug", "group_slug")
|
|
expect(page).to have_content "Select an option"
|
|
end
|
|
|
|
scenario "finds group using budget id and group id" do
|
|
visit budget_group_path(budget, group)
|
|
expect(page).to have_content "Select an option"
|
|
end
|
|
|
|
scenario "raises an error if budget slug is not found" do
|
|
expect do
|
|
visit budget_group_path("wrong_budget", group)
|
|
end.to raise_error ActiveRecord::RecordNotFound
|
|
end
|
|
|
|
scenario "raises an error if budget id is not found" do
|
|
expect do
|
|
visit budget_group_path(0, group)
|
|
end.to raise_error ActiveRecord::RecordNotFound
|
|
end
|
|
|
|
scenario "raises an error if group slug is not found" do
|
|
expect do
|
|
visit budget_group_path(budget, "wrong_group")
|
|
end.to raise_error ActiveRecord::RecordNotFound
|
|
end
|
|
|
|
scenario "raises an error if group id is not found" do
|
|
expect do
|
|
visit budget_group_path(budget, 0)
|
|
end.to raise_error ActiveRecord::RecordNotFound
|
|
end
|
|
end
|
|
|
|
context "Show" do
|
|
scenario "Headings are sorted by name" do
|
|
last_heading = create(:budget_heading, group: group, name: "BBB")
|
|
first_heading = create(:budget_heading, group: group, name: "AAA")
|
|
|
|
visit budget_group_path(budget, group)
|
|
|
|
expect(first_heading.name).to appear_before(last_heading.name)
|
|
end
|
|
end
|
|
|
|
end
|