Set new employee name from email on sign-up

This commit is contained in:
2015-10-12 17:03:06 +02:00
parent 86e518890f
commit ea287f2305
2 changed files with 21 additions and 2 deletions
+1 -1
View File
@@ -29,7 +29,7 @@ class NewSupplier
def persist!
@employee ||= current_employee
@employee ||= Employee.new email: email, password: password, password_confirmation: password_confirmation
@employee ||= Employee.new email: email, name: email.to_s.sub(/\@.*/, ''), password: password, password_confirmation: password_confirmation
raise "Cannot create employee with #{attributes.inspect}" unless employee.save
@supplier = Supplier.create name: supplier_name
supplier.add_manager employee
+20 -1
View File
@@ -1,6 +1,25 @@
require 'spec_helper'
describe NewSupplier do
subject { described_class.new }
let(:new_supplier_params){ {supplier_name: "New suppy", email: 'suppy@example.com', password: 'admin123', password_confirmation: 'admin123'} }
subject { described_class.new new_supplier_params }
it { should_not be_persisted }
it 'sets the name of the new employee to the email prefix' do
subject.save
subject.employee.name.should eq 'suppy'
end
it "does not save anything when the password_confirmation is wrong" do
new_supplier_params[:password_confirmation] = "something$else"
subject.save.should be false
subject.errors[:password_confirmation].should be_present
end
it "does not create a supplier when the name is already taken" do
create :supplier, name: 'New suppy'
expect{ subject.save }.not_to change{ Supplier.count }
subject.errors[:supplier_name].should be_present
end
end