Browse Source

Add email validation

pull/119/head
baarkerlounger 4 years ago
parent
commit
0c81ee155d
  1. 8
      app/controllers/users/sessions_controller.rb
  2. 9
      spec/features/user_spec.rb

8
app/controllers/users/sessions_controller.rb

@ -3,6 +3,8 @@ class Users::SessionsController < Devise::SessionsController
self.resource = resource_class.new
if params.dig("user", "email").empty?
resource.errors.add :email, "Please enter email address"
elsif !email_valid?(params.dig("user", "email"))
resource.errors.add :email, "Email addess is not valid"
end
if params.dig("user", "password").empty?
resource.errors.add :password, "Please enter password"
@ -13,4 +15,10 @@ class Users::SessionsController < Devise::SessionsController
super
end
end
private
def email_valid?(email)
email =~ URI::MailTo::EMAIL_REGEXP
end
end

9
spec/features/user_spec.rb

@ -98,6 +98,15 @@ RSpec.describe "User Features" do
expect(page).to have_selector("#user-email-field-error")
expect(page).to have_selector("#user-password-field-error")
end
it "show specific field error messages if an invalid email address is entered" do
visit("/case_logs")
fill_in("user[email]", with: "thisisn'tanemail")
click_button("Sign in")
expect(page).to have_selector("#error-summary-title")
expect(page).to have_selector("#user-email-field-error")
expect(page).to have_content(/Email addess is not valid/)
end
end
context "Your Account " do

Loading…
Cancel
Save