Validate presence of 'poll_id' attribute on Poll::Question model

Fixes #1831

On branch aperez-validate-poll-question-is-selected
  Changes to be committed:
    modified:   app/models/poll/question.rb
    modified:   spec/models/poll/question_spec.rb
    modified:   spec/features/admin/poll/polls_spec.rb
This commit is contained in:
Angel Perez
2017-09-14 09:01:56 -04:00
parent e573ab72f7
commit 0611e0f4ea
3 changed files with 16 additions and 1 deletions

View File

@@ -20,6 +20,7 @@ class Poll::Question < ActiveRecord::Base
validates :title, presence: true
validates :author, presence: true
validates :poll_id, presence: true
validates :title, length: { minimum: 4 }
validates :description, length: { maximum: Poll::Question.description_max_length }

View File

@@ -183,7 +183,7 @@ feature 'Admin polls' do
scenario 'Add question to poll', :js do
poll = create(:poll)
question = create(:poll_question, poll: nil, title: 'Should we rebuild the city?')
question = create(:poll_question, title: 'Should we rebuild the city?')
visit admin_poll_path(poll)

View File

@@ -9,6 +9,20 @@ RSpec.describe Poll::Question, type: :model do
end
end
describe "#poll_question_id" do
it "should be invalid if a poll is not selected" do
q = create(:poll_question)
q.poll_id = nil
expect(q).to_not be_valid
end
it "should be valid if a poll is selected" do
q = create(:poll_question)
q.poll_id = 1
expect(q).to be_valid
end
end
describe "#copy_attributes_from_proposal" do
it "copies the attributes from the proposal" do
create_list(:geozone, 3)