diff --git a/app/components/valuation/budgets/row_component.html.erb b/app/components/valuation/budgets/row_component.html.erb
index be3fc52c5..7489b50af 100644
--- a/app/components/valuation/budgets/row_component.html.erb
+++ b/app/components/valuation/budgets/row_component.html.erb
@@ -5,7 +5,7 @@
<%= budget.current_phase.name %>
|
-
+ |
<%= investments_count %>
|
diff --git a/app/components/valuation/budgets/row_component.rb b/app/components/valuation/budgets/row_component.rb
index da8e3f107..feac0f4c2 100644
--- a/app/components/valuation/budgets/row_component.rb
+++ b/app/components/valuation/budgets/row_component.rb
@@ -9,6 +9,8 @@ class Valuation::Budgets::RowComponent < ApplicationComponent
end
def investments_count
- budget.investments.by_valuator(current_user.valuator).valuation_open.count
+ return 0 unless budget.valuating?
+
+ budget.investments.visible_to_valuators.by_valuator(current_user.valuator).valuation_open.count
end
end
diff --git a/spec/components/valuation/budgets/row_component_spec.rb b/spec/components/valuation/budgets/row_component_spec.rb
new file mode 100644
index 000000000..51a3f7671
--- /dev/null
+++ b/spec/components/valuation/budgets/row_component_spec.rb
@@ -0,0 +1,27 @@
+require "rails_helper"
+
+describe Valuation::Budgets::RowComponent do
+ let(:valuator) { create(:valuator) }
+
+ before { sign_in(valuator.user) }
+
+ it "Displays visible and assigned investments count when budget is in valuating phase" do
+ budget = create(:budget, :valuating, name: "Sports")
+ create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
+ create(:budget_investment, :invisible_to_valuators, budget: budget, valuators: [valuator])
+ create(:budget_investment, :visible_to_valuators, budget: budget)
+
+ render_inline Valuation::Budgets::RowComponent.new(budget: budget)
+
+ expect(page).to have_selector(".investments-count", text: "1")
+ end
+
+ it "Displays zero as investments count when budget is not in valuating phase" do
+ budget = create(:budget, %i[accepting finished].sample, name: "Sports")
+ create(:budget_investment, :visible_to_valuators, budget: budget, valuators: [valuator])
+
+ render_inline Valuation::Budgets::RowComponent.new(budget: budget)
+
+ expect(page).to have_selector(".investments-count", text: "0")
+ end
+end
diff --git a/spec/system/valuation/budgets_spec.rb b/spec/system/valuation/budgets_spec.rb
index 88b6f52e2..4233cd9d1 100644
--- a/spec/system/valuation/budgets_spec.rb
+++ b/spec/system/valuation/budgets_spec.rb
@@ -1,10 +1,7 @@
require "rails_helper"
describe "Valuation budgets" do
- before do
- valuator = create(:valuator, user: create(:user, username: "Rachel", email: "rachel@valuators.org"))
- login_as(valuator.user)
- end
+ before { login_as(create(:valuator).user) }
context "Index" do
scenario "Displays published budgets" do
|