Refs #2603 Show 'See Results' button in admin panel
This commit is contained in:
@@ -159,6 +159,10 @@ class Budget < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def has_winning_investments?
|
||||||
|
investments.winners.any?
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def sanitize_descriptions
|
def sanitize_descriptions
|
||||||
|
|||||||
@@ -63,6 +63,12 @@
|
|||||||
class: "button hollow" %>
|
class: "button hollow" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
<% if @budget.has_winning_investments? %>
|
||||||
|
<%= link_to t("budgets.show.see_results"),
|
||||||
|
budget_results_path(@budget),
|
||||||
|
class: "button hollow margin-left" %>
|
||||||
|
<% end %>
|
||||||
|
|
||||||
<% if @budget.persisted? %>
|
<% if @budget.persisted? %>
|
||||||
<%= link_to t("admin.budgets.edit.delete"),
|
<%= link_to t("admin.budgets.edit.delete"),
|
||||||
admin_budget_path(@budget),
|
admin_budget_path(@budget),
|
||||||
|
|||||||
@@ -186,31 +186,37 @@ feature 'Admin budgets' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context "Calculate Budget's Winner Investments" do
|
context "Calculate Budget's Winner Investments" do
|
||||||
|
|
||||||
scenario 'For a Budget in reviewing balloting' do
|
scenario 'For a Budget in reviewing balloting' do
|
||||||
budget = create(:budget, phase: 'reviewing_ballots')
|
budget = create(:budget, phase: 'reviewing_ballots')
|
||||||
group = create(:budget_group, budget: budget)
|
group = create(:budget_group, budget: budget)
|
||||||
heading = create(:budget_heading, group: group, price: 4)
|
heading = create(:budget_heading, group: group, price: 4)
|
||||||
unselected = create(:budget_investment, :unselected, heading: heading, price: 1,
|
unselected = create(:budget_investment, :unselected, heading: heading, price: 1,
|
||||||
ballot_lines_count: 3)
|
ballot_lines_count: 3)
|
||||||
winner = create(:budget_investment, :winner, heading: heading, price: 3,
|
winner = create(:budget_investment, :selected, heading: heading, price: 3,
|
||||||
ballot_lines_count: 2)
|
ballot_lines_count: 2)
|
||||||
selected = create(:budget_investment, :selected, heading: heading, price: 2,
|
selected = create(:budget_investment, :selected, heading: heading, price: 2, ballot_lines_count: 1)
|
||||||
ballot_lines_count: 1)
|
|
||||||
|
|
||||||
visit edit_admin_budget_path(budget)
|
visit edit_admin_budget_path(budget)
|
||||||
|
expect(page).not_to have_content 'See results'
|
||||||
click_link 'Calculate Winner Investments'
|
click_link 'Calculate Winner Investments'
|
||||||
expect(page).to have_content 'Winners being calculated, it may take a minute.'
|
expect(page).to have_content 'Winners being calculated, it may take a minute.'
|
||||||
expect(page).to have_content winner.title
|
expect(page).to have_content winner.title
|
||||||
expect(page).not_to have_content unselected.title
|
expect(page).not_to have_content unselected.title
|
||||||
expect(page).not_to have_content selected.title
|
expect(page).not_to have_content selected.title
|
||||||
|
|
||||||
|
|
||||||
|
visit edit_admin_budget_path(budget)
|
||||||
|
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
|
||||||
|
|
||||||
visit edit_admin_budget_path(budget)
|
visit edit_admin_budget_path(budget)
|
||||||
|
|
||||||
expect(page).not_to have_content 'Calculate Winner Investments'
|
expect(page).not_to have_content 'Calculate Winner Investments'
|
||||||
|
expect(page).to have_content 'See results'
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -190,6 +190,18 @@ describe Budget do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#has_winning_investments?' do
|
||||||
|
it 'should return true if there is a winner investment' do
|
||||||
|
budget.investments << build(:budget_investment, :winner, price: 3, ballot_lines_count: 2)
|
||||||
|
|
||||||
|
expect(budget.has_winning_investments?).to eq true
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'hould return false if there is not a winner investment' do
|
||||||
|
expect(budget.has_winning_investments?).to eq false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#generate_phases" do
|
describe "#generate_phases" do
|
||||||
let(:drafting_phase) { budget.phases.drafting }
|
let(:drafting_phase) { budget.phases.drafting }
|
||||||
let(:informing_phase) { budget.phases.informing }
|
let(:informing_phase) { budget.phases.informing }
|
||||||
|
|||||||
Reference in New Issue
Block a user