From 6a47ecb0ebd7b40425cc26ab5c727a9d56c29454 Mon Sep 17 00:00:00 2001 From: Benjamin ter Kuile Date: Tue, 24 Feb 2015 18:25:46 +0100 Subject: [PATCH] Support form validation error for non signed in existing employee --- app/services/new_supplier.rb | 6 +++--- spec/acceptance/suppliers/signup.feature | 9 +++++++++ spec/acceptance_steps/suppliers/existance_steps.rb | 1 + 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/services/new_supplier.rb b/app/services/new_supplier.rb index 89ab48e2..bbfc157d 100644 --- a/app/services/new_supplier.rb +++ b/app/services/new_supplier.rb @@ -13,8 +13,8 @@ class NewSupplier validates :email, email: without_current_employee validates :password, presence: without_current_employee, confirmation: without_current_employee - validate :supplier_name_uniqueness validate :employee_uniqueness_or_existence + validate :supplier_name_uniqueness def save if valid? @@ -49,8 +49,8 @@ class NewSupplier end def supplier_name_uniqueness - return unless current_employee.present? and supplier_name.present? - current_suppliers = current_employee.suppliers + return unless (current_employee.present? || @employee.present?) and supplier_name.present? + current_suppliers = (current_employee || @employee).suppliers errors.add :supplier_name, 'You already have a supplier with that name' if current_suppliers.map(&:name).include? supplier_name end end diff --git a/spec/acceptance/suppliers/signup.feature b/spec/acceptance/suppliers/signup.feature index eb5440bf..b20155ab 100644 --- a/spec/acceptance/suppliers/signup.feature +++ b/spec/acceptance/suppliers/signup.feature @@ -38,6 +38,15 @@ Feature: A supplier can sign up And fill in the supplier signup form with an existing supplier name And click on the supplier signup submit button Then the new supplier signup for should have an error on 'supplier_name' + + @javascript + Scenario: Existing non signed in employee creates existing supplier name + Given there is a confirmed and open supplier + When I visit the supplier signup path + And fill in the supplier signup form with existing employee credentials + And fill in the supplier signup form with an existing supplier name + And click on the supplier signup submit button + Then the new supplier signup for should have an error on 'supplier_name' #Scenarios #- non existing non signed in employee #- existing non signed in employee diff --git a/spec/acceptance_steps/suppliers/existance_steps.rb b/spec/acceptance_steps/suppliers/existance_steps.rb index 30709d5c..2a00a210 100644 --- a/spec/acceptance_steps/suppliers/existance_steps.rb +++ b/spec/acceptance_steps/suppliers/existance_steps.rb @@ -1,5 +1,6 @@ step 'there is a confirmed and open supplier' do @supplier_password = 'secret1' + @employee_password = @supplier_password @employee = create :employee, email: 'supplier@mozo.bar', password: @supplier_password @supplier = build :supplier, open: true @supplier.add_manager @employee