From d42454a1a8bc4c839a9befff99a47dabf0af4912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Tue, 26 Mar 2019 20:36:12 +0100 Subject: [PATCH] Include booth users in participants in vote phase We were expecting `balloters` to include `poll_ballot_voters` (that's why we're substracting them to calculate web participants), but reality has proven `poll_ballot_voters` aren't included in `balloters`. --- app/models/budget/stats.rb | 2 +- spec/models/budget/stats_spec.rb | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/models/budget/stats.rb b/app/models/budget/stats.rb index 7b2e91e74..3f834fe5b 100644 --- a/app/models/budget/stats.rb +++ b/app/models/budget/stats.rb @@ -33,7 +33,7 @@ class Budget::Stats end def total_participants_vote_phase - balloters.uniq.count + (balloters + poll_ballot_voters).uniq.count end def total_budget_investments diff --git a/spec/models/budget/stats_spec.rb b/spec/models/budget/stats_spec.rb index 8eb18ae14..6868434b1 100644 --- a/spec/models/budget/stats_spec.rb +++ b/spec/models/budget/stats_spec.rb @@ -70,6 +70,21 @@ describe Budget::Stats do expect(stats.generate[:total_participants_vote_phase]).to be 1 end + it "includes balloters and poll balloters" do + create(:budget_ballot_line, investment: investment) + create(:poll_voter, :from_booth, budget: budget) + + expect(stats.generate[:total_participants_vote_phase]).to be 2 + end + + it "counts once a user who is balloter and poll balloter" do + poller_and_balloter = create(:user, :level_two) + create(:budget_ballot_line, investment: investment, user: poller_and_balloter) + create(:poll_voter, :from_booth, user: poller_and_balloter, budget: budget) + + expect(stats.generate[:total_participants_vote_phase]).to be 1 + end + it "doesn't count nil user ids" do create(:budget_ballot_line, investment: investment, ballot: create(:budget_ballot, budget: budget, user: nil, physical: true)