
step "I visit the supplier signup path" do
  visit new_suppliers_path
end

step "fill in the supplier signup form with new credentials" do
  js_set_field '#new_supplier_supplier_name', 'Signup Supplier'
  js_set_field '#new_supplier_email', 'signup_supplier@example.com'
  js_set_field '#new_supplier_password', 'SignupSupplier'
  js_set_field '#new_supplier_password_confirmation', 'SignupSupplier'
end
step "fill in the supplier signup form with existing employee credentials" do
  js_set_field '#new_supplier_supplier_name', 'Signup Supplier'
  js_set_field '#new_supplier_email', @employee.email
  js_set_field '#new_supplier_password', @employee_password
  js_set_field '#new_supplier_password_confirmation', @employee_password
end

step "fill in the supplier signup form with a new supplier name" do
  js_set_field '#new_supplier_supplier_name', 'Signup Supplier'
end

step "fill in the supplier signup form with an existing supplier name" do
  js_set_field '#new_supplier_supplier_name', @supplier.name
end

step "click on the supplier signup submit button" do
  find('[name="commit"]').click
end

step "a new supplier with the new signup data should be created" do
  @signup_supplier = Supplier.find_by_name('Signup Supplier')
  @signup_supplier.should be_present

  @signup_employee = Employee.find_by_email('signup_supplier@example.com')
  @signup_employee.should be_present

  @employee_settings = @signup_supplier.settings_for(@signup_employee)
  @employee_settings.should be_present
  @employee_settings.manager?.should be true
end

step "a new supplier with the existing employee should be created" do
  @signup_supplier = Supplier.find_by_name('Signup Supplier')
  @signup_supplier.should be_present
  Employee.count.should eq 1 # No new employee, but existing
  @employee_settings = @signup_supplier.settings_for(@employee)
  @employee_settings.should be_present
  @employee_settings.manager?.should be true
end

step "a supplier signup confirmation mail should be sent containing a link to the token" do
  mail = ActionMailer::Base.deliveries.last
  mail.should be_present
  mail.body.should match /confirmation_token=\w+/
end

step "I visit the supplier signup confirmation path with the correct token" do
  visit supplier_confirmation_path(confirmation_token: @signup_supplier.confirmation_token)
end

step "the new signup supplier should be confirmed" do
  @signup_supplier.reload
  @signup_supplier.should be_confirmed
end

step "the new supplier signup for should have an error on :attribute" do |attribute|
  page.should have_selector ".#{attribute}.error"
end
