From 523e69fb02b4ee614478cdeeda945a248226df63 Mon Sep 17 00:00:00 2001 From: kikito Date: Tue, 11 Aug 2015 19:48:11 +0200 Subject: [PATCH] Adds validations for organizations --- app/models/user.rb | 20 ++++++++++++++++---- spec/models/user_spec.rb | 12 ++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index c6e477815..6ced65533 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -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 diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index b57595660..58c2c3cba 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -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