From 558a14a5f2d0cd18764e39508f7b68b3aacb33d8 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Fri, 25 Oct 2024 20:29:58 +0300 Subject: [PATCH] fix email validate --- lib/params/base_validator.rb | 4 +++- spec/lib/params/base_validator_spec.rb | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/params/base_validator.rb b/lib/params/base_validator.rb index 8075a126..29c1985f 100644 --- a/lib/params/base_validator.rb +++ b/lib/params/base_validator.rb @@ -70,8 +70,10 @@ module Params def email_format(params, key, message: nil) return if params.blank? return if params[key].blank? + return if params[key].to_s.include?('<') - if params[key].to_s.strip.split(/\s*[;,]\s*/).all? { |email| EmailTypo::DotCom.call(email).match?(EMAIL_REGEXP) } + if params[key].to_s.strip.split(/\s*[;,]\s*/).compact_blank + .all? { |email| EmailTypo::DotCom.call(email).match?(EMAIL_REGEXP) } return end diff --git a/spec/lib/params/base_validator_spec.rb b/spec/lib/params/base_validator_spec.rb index c7152bda..5a00e188 100644 --- a/spec/lib/params/base_validator_spec.rb +++ b/spec/lib/params/base_validator_spec.rb @@ -10,6 +10,7 @@ RSpec.describe Params::BaseValidator do emails = [ ' john.doe@example.com ', 'john.doe@example.com', + 'Test ', 'jane+newsletter@domain.org', 'mike_smith@company.net', 'lisa-wong@sub.example.co.uk', @@ -49,7 +50,6 @@ RSpec.describe Params::BaseValidator do it 'when multiple emails are valid' do emails = [ - 'john.doe@example.com, jane.doe+newsletter@domain.org', 'joshua@automobile.car ; chloe+fashion@food.delivery', 'mike-smith@company.net;lisa.wong-sales@sub.example.co.uk', @@ -78,9 +78,7 @@ RSpec.describe Params::BaseValidator do it 'when multiple emails are invalid' do emails = [ - 'jone@gmail.com, ,mike@gmail.com', 'john.doe@example.com dave@nonprofit.org', - '; oliver.scott@example.com', 'amy.baker@ example.com, george.morris@ example.com', 'jenny.king@example.com . diana.robinson@example.com', 'nancy.davis@.com, henry.ford@.com',