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',