Merge pull request #2775 from consul/proposals-responsible-name
Fix validation error when creating proposals without user verification
This commit is contained in:
@@ -36,12 +36,12 @@ class Proposal < ActiveRecord::Base
|
|||||||
validates :question, presence: true
|
validates :question, presence: true
|
||||||
validates :summary, presence: true
|
validates :summary, presence: true
|
||||||
validates :author, presence: true
|
validates :author, presence: true
|
||||||
validates :responsible_name, presence: true
|
validates :responsible_name, presence: true, unless: :skip_user_verification?
|
||||||
|
|
||||||
validates :title, length: { in: 4..Proposal.title_max_length }
|
validates :title, length: { in: 4..Proposal.title_max_length }
|
||||||
validates :description, length: { maximum: Proposal.description_max_length }
|
validates :description, length: { maximum: Proposal.description_max_length }
|
||||||
validates :question, length: { in: 10..Proposal.question_max_length }
|
validates :question, length: { in: 10..Proposal.question_max_length }
|
||||||
validates :responsible_name, length: { in: 6..Proposal.responsible_name_max_length }
|
validates :responsible_name, length: { in: 6..Proposal.responsible_name_max_length }, unless: :skip_user_verification?
|
||||||
validates :retired_reason, inclusion: { in: RETIRE_OPTIONS, allow_nil: true }
|
validates :retired_reason, inclusion: { in: RETIRE_OPTIONS, allow_nil: true }
|
||||||
|
|
||||||
validates :terms_of_service, acceptance: { allow_nil: false }, on: :create
|
validates :terms_of_service, acceptance: { allow_nil: false }, on: :create
|
||||||
@@ -214,6 +214,10 @@ class Proposal < ActiveRecord::Base
|
|||||||
return orders
|
return orders
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def skip_user_verification?
|
||||||
|
Setting["feature.user.skip_verification"].present?
|
||||||
|
end
|
||||||
|
|
||||||
protected
|
protected
|
||||||
|
|
||||||
def set_responsible_name
|
def set_responsible_name
|
||||||
|
|||||||
@@ -1804,4 +1804,41 @@ feature 'Successful proposals' do
|
|||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "Skip user verification" do
|
||||||
|
|
||||||
|
before do
|
||||||
|
Setting["feature.user.skip_verification"] = 'true'
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Setting["feature.user.skip_verification"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario "Create" do
|
||||||
|
author = create(:user)
|
||||||
|
login_as(author)
|
||||||
|
|
||||||
|
visit proposals_path
|
||||||
|
|
||||||
|
within('aside') do
|
||||||
|
click_link 'Create a proposal'
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(current_path).to eq(new_proposal_path)
|
||||||
|
|
||||||
|
fill_in 'proposal_title', with: 'Help refugees'
|
||||||
|
fill_in 'proposal_summary', with: 'In summary what we want is...'
|
||||||
|
fill_in 'proposal_question', with: 'Would you like to?'
|
||||||
|
fill_in 'proposal_description', with: 'This is very important because...'
|
||||||
|
fill_in 'proposal_external_url', with: 'http://rescue.org/refugees'
|
||||||
|
fill_in 'proposal_video_url', with: 'https://www.youtube.com/watch?v=yPQfcG-eimk'
|
||||||
|
fill_in 'proposal_tag_list', with: 'Refugees, Solidarity'
|
||||||
|
check 'proposal_terms_of_service'
|
||||||
|
|
||||||
|
click_button 'Create proposal'
|
||||||
|
|
||||||
|
expect(page).to have_content 'Proposal created successfully.'
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user