Update calculate winners button on budgets form

This commit is contained in:
decabeza
2019-02-04 14:22:04 +01:00
parent ad1c8876ed
commit 5974b7ee84
3 changed files with 41 additions and 12 deletions

View File

@@ -62,8 +62,8 @@
</div> </div>
<div class="float-right"> <div class="float-right">
<% if @budget.balloting_process? %> <% if display_calculate_winners_button?(@budget) %>
<%= link_to t("admin.budgets.winners.calculate"), <%= link_to calculate_winner_button_text(@budget),
calculate_winners_admin_budget_path(@budget), calculate_winners_admin_budget_path(@budget),
method: :put, method: :put,
class: "button hollow" %> class: "button hollow" %>

View File

@@ -359,20 +359,30 @@ feature 'Admin budget investments' do
end end
scenario "Disable 'Calculate winner' button if incorrect phase" do scenario "Disable 'Calculate winner' button if incorrect phase" do
budget.update(phase: 'reviewing_ballots') budget.update(phase: "reviewing_ballots")
visit admin_budget_budget_investments_path(budget) visit admin_budget_budget_investments_path(budget)
click_link 'Winners' click_link "Winners"
expect(page).to have_link "Calculate Winner Investments" expect(page).to have_link "Calculate Winner Investments"
budget.update(phase: 'accepting') visit edit_admin_budget_path(budget)
expect(page).to have_link "Calculate Winner Investments"
budget.update(phase: "accepting")
visit admin_budget_budget_investments_path(budget) visit admin_budget_budget_investments_path(budget)
click_link 'Winners' click_link "Winners"
expect(page).not_to have_link "Calculate Winner Investments"
expect(page).to have_content 'The budget has to stay on phase "Balloting projects", '\
'"Reviewing Ballots" or "Finished budget" in order '\
"to calculate winners projects"
visit edit_admin_budget_path(budget)
expect(page).not_to have_link "Calculate Winner Investments" expect(page).not_to have_link "Calculate Winner Investments"
expect(page).to have_content 'The budget has to stay on phase "Balloting projects", "Reviewing Ballots" or "Finished budget" in order to calculate winners projects'
end end
scenario "Filtering by minimum number of votes", :js do scenario "Filtering by minimum number of votes", :js do

View File

@@ -220,14 +220,33 @@ feature 'Admin budgets' do
expect(page).to have_content 'See results' expect(page).to have_content 'See results'
end end
scenario 'For a finished Budget' do scenario "For a finished Budget" do
budget = create(:budget, phase: 'finished') budget = create(:budget, phase: "finished")
allow_any_instance_of(Budget).to receive(:has_winning_investments?).and_return true allow_any_instance_of(Budget).to receive(:has_winning_investments?).and_return(true)
visit edit_admin_budget_path(budget) visit edit_admin_budget_path(budget)
expect(page).not_to have_content 'Calculate Winner Investments' expect(page).to have_content "Calculate Winner Investments"
expect(page).to have_content 'See results' expect(page).to have_content "See results"
end
scenario "Recalculate for a finished Budget" do
budget = create(:budget, phase: "finished")
group = create(:budget_group, budget: budget)
heading = create(:budget_heading, group: group)
create(:budget_investment, :winner, heading: heading)
visit edit_admin_budget_path(budget)
expect(page).to have_content "Recalculate Winner Investments"
expect(page).to have_content "See results"
expect(page).not_to have_content "Calculate Winner Investments"
visit admin_budget_budget_investments_path(budget)
click_link "Winners"
expect(page).to have_content "Recalculate Winner Investments"
expect(page).not_to have_content "Calculate Winner Investments"
end end
end end