Files
grecia/spec/features/budgets/budgets_spec.rb

100 lines
2.6 KiB
Ruby

require 'rails_helper'
feature 'Budgets' do
scenario 'Index' do
budgets = create_list(:budget, 3)
visit budgets_path
budgets.each {|budget| expect(page).to have_link(budget.name)}
end
context 'Show' do
scenario "List all groups" do
budget = create(:budget)
group1 = create(:budget_group, budget: budget)
group2 = create(:budget_group, budget: budget)
visit budget_path(budget)
budget.groups.each {|group| expect(page).to have_link(group.name)}
end
scenario "Links to unfeasible and selected if balloting or later" do
budget = create(:budget, :selecting)
group = create(:budget_group, budget: budget)
visit budget_path(budget)
expect(page).to_not have_link "See unfeasible investments"
expect(page).to_not have_link "See investments not selected for balloting phase"
click_link group.name
expect(page).to_not have_link "See unfeasible investments"
expect(page).to_not have_link "See investments not selected for balloting phase"
budget.update(phase: :balloting)
visit budget_path(budget)
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
click_link group.name
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
budget.update(phase: :finished)
visit budget_path(budget)
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
click_link group.name
expect(page).to have_link "See unfeasible investments"
expect(page).to have_link "See investments not selected for balloting phase"
end
end
context 'Accepting' do
let(:budget) { create(:budget) }
background do
budget.update(phase: 'accepting')
end
context "Permissions" do
scenario "Verified user" do
user = create(:user, :level_two)
login_as(user)
visit budget_path(budget)
expect(page).to have_link "Create budget investment"
end
scenario "Unverified user" do
user = create(:user)
login_as(user)
visit budget_path(budget)
expect(page).to have_content "To create a new budget investment verify your account."
end
scenario "user not logged in" do
visit budget_path(budget)
expect(page).to have_content "To create a new budget investment you must sign in or sign up."
end
end
end
end