From abaf6ab7856aafda326b2708192faf31b245fda1 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Wed, 13 Dec 2017 12:52:25 +0100 Subject: [PATCH] adds model validations for legislation proposals --- app/models/legislation/proposal.rb | 1 + spec/factories.rb | 8 +++++++ spec/models/legislation/proposal_spec.rb | 30 ++++++++++++++++++++++++ 3 files changed, 39 insertions(+) create mode 100644 spec/models/legislation/proposal_spec.rb diff --git a/app/models/legislation/proposal.rb b/app/models/legislation/proposal.rb index 56eaac24b..c7196a3f0 100644 --- a/app/models/legislation/proposal.rb +++ b/app/models/legislation/proposal.rb @@ -27,6 +27,7 @@ class Legislation::Proposal < ActiveRecord::Base validates :title, presence: true validates :summary, presence: true validates :author, presence: true + validates :process, presence: true validates :title, length: { in: 4..Legislation::Proposal.title_max_length } validates :description, length: { maximum: Legislation::Proposal.description_max_length } diff --git a/spec/factories.rb b/spec/factories.rb index 1ac2f3ebd..64a63cbc6 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -816,6 +816,14 @@ LOREM_IPSUM user end + factory :legislation_proposal, class: 'Legislation::Proposal' do + title "Example proposal for a legislation" + summary "This law should include..." + terms_of_service '1' + process factory: :legislation_process + author factory: :user + end + factory :site_customization_page, class: 'SiteCustomization::Page' do slug "example-page" title "Example page" diff --git a/spec/models/legislation/proposal_spec.rb b/spec/models/legislation/proposal_spec.rb new file mode 100644 index 000000000..f67cf0f8f --- /dev/null +++ b/spec/models/legislation/proposal_spec.rb @@ -0,0 +1,30 @@ +require 'rails_helper' + +describe Legislation::Proposal do + let(:proposal) { build(:legislation_proposal) } + + it "should be valid" do + expect(proposal).to be_valid + end + + it "should not be valid without a process" do + proposal.process = nil + expect(proposal).to_not be_valid + end + + it "should not be valid without an author" do + proposal.author = nil + expect(proposal).to_not be_valid + end + + it "should not be valid without a title" do + proposal.title = nil + expect(proposal).to_not be_valid + end + + it "should not be valid without a summary" do + proposal.summary = nil + expect(proposal).to_not be_valid + end + +end