Skip to content

Commit

Permalink
fix: Accurate duplicate checking when adding email to Personalizations (
Browse files Browse the repository at this point in the history
  • Loading branch information
tmimura39 authored Jan 26, 2021
1 parent 7d9a647 commit 37c0b75
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/sendgrid/helpers/mail/personalization.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def duplicate?(addition)
additional_email = addition.email.downcase

[@tos, @ccs, @bccs].flatten.each do |elm|
return true if elm&.dig('email') == additional_email
return true if elm&.dig('email')&.downcase == additional_email
end

false
Expand Down
27 changes: 27 additions & 0 deletions test/sendgrid/helpers/mail/test_personalizations.rb
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def test_add_to
def test_duplicate_add_to
@personalization = Personalization.new
@personalization.add_to(Email.new(email: '[email protected]', name: 'Example User'))
@personalization.add_to(Email.new(email: '[email protected]', name: 'Example User 2'))

assert_raises(DuplicatePersonalizationError) do
@personalization.add_to(Email.new(email: '[email protected]', name: 'Duplicate User'))
Expand All @@ -34,6 +35,14 @@ def test_duplicate_add_to
assert_raises(DuplicatePersonalizationError) do
@personalization.add_to(Email.new(email: '[email protected]', name: 'Duplicate User'))
end

assert_raises(DuplicatePersonalizationError) do
@personalization.add_to(Email.new(email: '[email protected]', name: 'Duplicate User 2'))
end

assert_raises(DuplicatePersonalizationError) do
@personalization.add_to(Email.new(email: '[email protected]', name: 'Duplicate User 2'))
end
end

def test_add_cc
Expand All @@ -58,6 +67,7 @@ def test_add_cc
def test_duplicate_add_cc
@personalization = Personalization.new
@personalization.add_cc(Email.new(email: '[email protected]', name: 'Example User'))
@personalization.add_cc(Email.new(email: '[email protected]', name: 'Example User 2'))

assert_raises(DuplicatePersonalizationError) do
@personalization.add_cc(Email.new(email: '[email protected]', name: 'Duplicate User'))
Expand All @@ -66,6 +76,14 @@ def test_duplicate_add_cc
assert_raises(DuplicatePersonalizationError) do
@personalization.add_cc(Email.new(email: '[email protected]', name: 'Duplicate User'))
end

assert_raises(DuplicatePersonalizationError) do
@personalization.add_cc(Email.new(email: '[email protected]', name: 'Duplicate User 2'))
end

assert_raises(DuplicatePersonalizationError) do
@personalization.add_cc(Email.new(email: '[email protected]', name: 'Duplicate User 2'))
end
end

def test_add_bcc
Expand All @@ -90,6 +108,7 @@ def test_add_bcc
def test_duplicate_add_bcc
@personalization = Personalization.new
@personalization.add_bcc(Email.new(email: '[email protected]', name: 'Example User'))
@personalization.add_bcc(Email.new(email: '[email protected]', name: 'Example User 2'))

assert_raises(DuplicatePersonalizationError) do
@personalization.add_bcc(Email.new(email: '[email protected]', name: 'Duplicate User'))
Expand All @@ -98,6 +117,14 @@ def test_duplicate_add_bcc
assert_raises(DuplicatePersonalizationError) do
@personalization.add_bcc(Email.new(email: '[email protected]', name: 'Duplicate User'))
end

assert_raises(DuplicatePersonalizationError) do
@personalization.add_bcc(Email.new(email: '[email protected]', name: 'Duplicate User 2'))
end

assert_raises(DuplicatePersonalizationError) do
@personalization.add_bcc(Email.new(email: '[email protected]', name: 'Duplicate User 2'))
end
end

def test_add_header
Expand Down

0 comments on commit 37c0b75

Please sign in to comment.