From da43e9e2e491699fa145afbb200f1bce5dbee697 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baza=CC=81n?= Date: Wed, 17 May 2017 13:03:46 +0200 Subject: [PATCH] adds spec for edge case --- spec/features/budgets/ballots_spec.rb | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/spec/features/budgets/ballots_spec.rb b/spec/features/budgets/ballots_spec.rb index b7471ee41..b8f40acf0 100644 --- a/spec/features/budgets/ballots_spec.rb +++ b/spec/features/budgets/ballots_spec.rb @@ -592,7 +592,7 @@ feature 'Ballots' do end end - scenario 'Insufficient functs (removed after destroying from sidebar)', :js do + scenario 'Insufficient funds (removed after destroying from sidebar)', :js do bi1 = create(:budget_investment, :selected, heading: california, price: 600) bi2 = create(:budget_investment, :selected, heading: california, price: 500) @@ -621,6 +621,29 @@ feature 'Ballots' do end end + scenario "Edge case voting a non-elegible investment", :js do + investment1 = create(:budget_investment, :selected, heading: new_york, price: 10000) + + login_as(user) + visit budget_path(budget) + click_link "States" + click_link "New York" + + new_york.update(price: 10) + + within("#budget_investment_#{investment1.id}") do + expect(page).to have_selector('.in-favor a', visible: true) + find('.add a').trigger('click') + + expect(page.status_code).to eq(200) + expect(page).to_not have_content "Remove" + expect(page).to have_selector('.participation-not-allowed', visible: false) + find("div.ballot").hover + expect(page).to have_selector('.participation-not-allowed', visible: true) + expect(page).to have_selector('.in-favor a', visible: false) + end + end + scenario "Balloting is disabled when budget isn't in the balotting phase", :js do budget.update(phase: 'accepting')