Adds validations for organizations

This commit is contained in:
kikito
2015-08-11 19:48:11 +02:00
parent 9ee1e5dbc5
commit 523e69fb02
2 changed files with 28 additions and 4 deletions

View File

@@ -4,12 +4,14 @@ class User < ActiveRecord::Base
acts_as_voter
validates :first_name, presence: true, unless: :use_nickname?
validates :last_name, presence: true, unless: :use_nickname?
validates :nickname, presence: true, if: :use_nickname?
validates :first_name, presence: true, if: :use_first_name?
validates :last_name, presence: true, if: :use_last_name?
validates :nickname, presence: true, if: :use_nickname?
def name
use_nickname? ? nickname : "#{first_name} #{last_name}"
return nickname if use_nickname?
return organization_name if organization?
"#{first_name} #{last_name}"
end
def votes_on_debates(debates_ids = [])
@@ -35,4 +37,14 @@ class User < ActiveRecord::Base
def verified_organization?
organization_verified_at.present?
end
private
def use_first_name?
!use_nickname? && !organization?
end
def use_last_name?
use_first_name?
end
end

View File

@@ -119,6 +119,18 @@ describe User do
subject.organization_name = "Anonymous"
expect(subject.organization?).to be true
end
it "deactivates the validation of first_name and last_name " do
subject.first_name = nil
subject.last_name = nil
subject.organization_name = "The A Team"
expect(subject).to be_valid
end
it "calculates the name using the organization name" do
subject.organization_name = "The A Team"
expect(subject.name).to eq("The A Team")
end
end
describe "verified_organization?" do