From 5d475e64014147a3260671f85cc1009c7db03548 Mon Sep 17 00:00:00 2001 From: decabeza Date: Wed, 2 Feb 2022 14:59:18 +0100 Subject: [PATCH] Manage the render of the price field on budgets ballot section --- .../budgets/ballot/investment_component.rb | 2 +- spec/system/budgets/ballots_spec.rb | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/app/components/budgets/ballot/investment_component.rb b/app/components/budgets/ballot/investment_component.rb index 31352ccfe..18387e11a 100644 --- a/app/components/budgets/ballot/investment_component.rb +++ b/app/components/budgets/ballot/investment_component.rb @@ -20,7 +20,7 @@ class Budgets::Ballot::InvestmentComponent < ApplicationComponent end def investment_price - tag.span investment.formatted_price, class: "ballot-list-price" + tag.span investment.formatted_price, class: "ballot-list-price" if budget.show_money? end def delete_path diff --git a/spec/system/budgets/ballots_spec.rb b/spec/system/budgets/ballots_spec.rb index f824ef956..872ced135 100644 --- a/spec/system/budgets/ballots_spec.rb +++ b/spec/system/budgets/ballots_spec.rb @@ -659,4 +659,33 @@ describe "Ballots" do end end end + + context "Hide money" do + scenario "Do not show prices on sidebar or ballot show" do + budget_hide_money = create(:budget, :balloting, :approval, :hide_money) + group_no_price = create(:budget_group, budget: budget_hide_money) + heading_no_price = create(:budget_heading, group: group_no_price, max_ballot_lines: 2) + investment_1 = create(:budget_investment, :selected, heading: heading_no_price, price: 3000) + investment_2 = create(:budget_investment, :selected, heading: heading_no_price, price: 4000) + user = create(:user, :level_two, ballot_lines: [investment_1, investment_2]) + + login_as(user) + visit budget_investments_path(budget_hide_money, heading_id: heading_no_price.id) + + within("#sidebar") do + expect(page).to have_content investment_1.title + expect(page).to have_content investment_2.title + expect(page).not_to have_content investment_1.price + expect(page).not_to have_content investment_2.price + expect(page).not_to have_content "€" + click_link "Submit my ballot" + end + + expect(page).to have_content investment_1.title + expect(page).to have_content investment_2.title + expect(page).not_to have_content investment_1.price + expect(page).not_to have_content investment_2.price + expect(page).not_to have_content "€" + end + end end