From 521172bc1903315b3819ee7f8430e23dd8774e26 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 21 Apr 2016 14:07:41 +0200 Subject: [PATCH 1/2] adds validation on feasible_explanation --- app/models/spending_proposal.rb | 1 + spec/models/spending_proposal_spec.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/app/models/spending_proposal.rb b/app/models/spending_proposal.rb index d8ae2acf0..eed1d21fa 100644 --- a/app/models/spending_proposal.rb +++ b/app/models/spending_proposal.rb @@ -16,6 +16,7 @@ class SpendingProposal < ActiveRecord::Base validates :title, presence: true validates :author, presence: true validates :description, presence: true + validates_presence_of :feasible_explanation, if: :valuation_finished? validates :title, length: { in: 4..SpendingProposal.title_max_length } validates :description, length: { maximum: SpendingProposal.description_max_length } diff --git a/spec/models/spending_proposal_spec.rb b/spec/models/spending_proposal_spec.rb index 5bff7cadd..9e3b51d76 100644 --- a/spec/models/spending_proposal_spec.rb +++ b/spec/models/spending_proposal_spec.rb @@ -42,6 +42,18 @@ describe SpendingProposal do end end + describe "#feasible_explanation" do + it "should be valid if valuation not finished" do + spending_proposal.valuation_finished = false + expect(spending_proposal).to be_valid + end + + it "should not be valid if valuation finished" do + spending_proposal.valuation_finished = true + expect(spending_proposal).to_not be_valid + end + end + describe "dossier info" do describe "#feasibility" do it "can be feasible" do From 8a1d1986f221fced139b6e440bb6e422b12ce302 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Thu, 21 Apr 2016 15:50:47 +0200 Subject: [PATCH 2/2] fixes specs --- spec/factories.rb | 1 + spec/models/spending_proposal_spec.rb | 2 ++ 2 files changed, 3 insertions(+) diff --git a/spec/factories.rb b/spec/factories.rb index 6cfe2779b..20a0b2b51 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -183,6 +183,7 @@ FactoryGirl.define do factory :spending_proposal do sequence(:title) { |n| "Spending Proposal #{n} title" } description 'Spend money on this' + feasible_explanation 'This proposal is not viable because...' external_url 'http://external_documention.org' terms_of_service '1' association :author, factory: :user diff --git a/spec/models/spending_proposal_spec.rb b/spec/models/spending_proposal_spec.rb index 9e3b51d76..eb0165732 100644 --- a/spec/models/spending_proposal_spec.rb +++ b/spec/models/spending_proposal_spec.rb @@ -44,11 +44,13 @@ describe SpendingProposal do describe "#feasible_explanation" do it "should be valid if valuation not finished" do + spending_proposal.feasible_explanation = "" spending_proposal.valuation_finished = false expect(spending_proposal).to be_valid end it "should not be valid if valuation finished" do + spending_proposal.feasible_explanation = "" spending_proposal.valuation_finished = true expect(spending_proposal).to_not be_valid end