Fixes issue when evaluating feasible sps - the explanation should be required only for unfeasible ones

This commit is contained in:
kikito
2016-04-25 14:55:59 +02:00
parent 91199cda77
commit c1f5db1f1e
2 changed files with 15 additions and 2 deletions

View File

@@ -16,7 +16,7 @@ class SpendingProposal < ActiveRecord::Base
validates :title, presence: true validates :title, presence: true
validates :author, presence: true validates :author, presence: true
validates :description, presence: true validates :description, presence: true
validates_presence_of :feasible_explanation, if: :valuation_finished? validates_presence_of :feasible_explanation, if: :feasible_explanation_required?
validates :title, length: { in: 4..SpendingProposal.title_max_length } validates :title, length: { in: 4..SpendingProposal.title_max_length }
validates :description, length: { maximum: SpendingProposal.description_max_length } validates :description, length: { maximum: SpendingProposal.description_max_length }
@@ -100,6 +100,10 @@ class SpendingProposal < ActiveRecord::Base
valuation_finished valuation_finished
end end
def feasible_explanation_required?
valuation_finished? && unfeasible?
end
def total_votes def total_votes
cached_votes_up + physical_votes cached_votes_up + physical_votes
end end
@@ -139,4 +143,5 @@ class SpendingProposal < ActiveRecord::Base
valuation_finished.feasible valuation_finished.feasible
end end
end end

View File

@@ -49,8 +49,16 @@ describe SpendingProposal do
expect(spending_proposal).to be_valid expect(spending_proposal).to be_valid
end end
it "should not be valid if valuation finished" do it "should be valid if valuation finished and feasible" do
spending_proposal.feasible_explanation = "" spending_proposal.feasible_explanation = ""
spending_proposal.feasible = true
spending_proposal.valuation_finished = true
expect(spending_proposal).to be_valid
end
it "should not be valid if valuation finished and unfeasible" do
spending_proposal.feasible_explanation = ""
spending_proposal.feasible = false
spending_proposal.valuation_finished = true spending_proposal.valuation_finished = true
expect(spending_proposal).to_not be_valid expect(spending_proposal).to_not be_valid
end end