From 7bddd97ed3edbf8042e90421a70f601340444090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mar=C3=ADa=20Checa?= Date: Tue, 29 May 2018 11:54:17 +0200 Subject: [PATCH] Adds validation of email present in `valid_email?` method --- lib/email_digest.rb | 2 +- spec/lib/email_digests_spec.rb | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/email_digest.rb b/lib/email_digest.rb index b20ab5a6d..502c68f41 100644 --- a/lib/email_digest.rb +++ b/lib/email_digest.rb @@ -28,7 +28,7 @@ class EmailDigest end def valid_email? - user.email.match(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i) + user.email.present? && user.email.match(/\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i) end end diff --git a/spec/lib/email_digests_spec.rb b/spec/lib/email_digests_spec.rb index 2622b76e7..c5477610d 100644 --- a/spec/lib/email_digests_spec.rb +++ b/spec/lib/email_digests_spec.rb @@ -152,6 +152,14 @@ describe EmailDigest do email_digest = described_class.new(user) expect(email_digest.valid_email?).to be(nil) end + + it "returns false if email does not exist" do + user = create(:user) + user.update_attribute(:email, nil) + + email_digest = described_class.new(user) + expect(email_digest.valid_email?).to be(false) + end end end