From da03311f999bc50192906adf0c56e24ff0241c58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juanjo=20Baz=C3=A1n?= Date: Mon, 12 Sep 2016 18:47:56 +0200 Subject: [PATCH] archived proposals can not accept votes --- app/models/proposal.rb | 2 +- spec/factories.rb | 4 ++++ spec/models/proposal_spec.rb | 9 ++++++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/models/proposal.rb b/app/models/proposal.rb index 35c37c015..99a4eedee 100644 --- a/app/models/proposal.rb +++ b/app/models/proposal.rb @@ -121,7 +121,7 @@ class Proposal < ActiveRecord::Base end def register_vote(user, vote_value) - if votable_by?(user) + if votable_by?(user) && !archived? vote_by(voter: user, vote: vote_value) end end diff --git a/spec/factories.rb b/spec/factories.rb index cdcfe7381..b70effb97 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -163,6 +163,10 @@ FactoryGirl.define do end end + trait :archived do + created_at (Setting["months_to_archive_proposals"].to_i + 1).months.ago + end + trait :with_hot_score do before(:save) { |d| d.calculate_hot_score } end diff --git a/spec/models/proposal_spec.rb b/spec/models/proposal_spec.rb index 5ef042fca..517511607 100644 --- a/spec/models/proposal_spec.rb +++ b/spec/models/proposal_spec.rb @@ -204,6 +204,13 @@ describe Proposal do expect {proposal.register_vote(user, 'yes')}.to change{proposal.reload.votes_for.size}.by(0) end end + + it "should not register vote for archived proposals" do + user = create(:user, verified_at: Time.now) + archived_proposal = create(:proposal, :archived) + + expect {archived_proposal.register_vote(user, 'yes')}.to change{proposal.reload.votes_for.size}.by(0) + end end describe '#cached_votes_up' do @@ -814,7 +821,7 @@ describe Proposal do describe "archived" do before(:all) do @new_proposal = create(:proposal) - @archived_proposal = create(:proposal, created_at: (Setting["months_to_archive_proposals"].to_i + 1).months.ago) + @archived_proposal = create(:proposal, :archived) end it "archived? is true only for proposals created more than n (configured months) ago" do