Set new employee name from email on sign-up
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user