From 781dacd75a0a955492b3f5d550828d78ada66b4a Mon Sep 17 00:00:00 2001 From: JT Date: Wed, 29 Jun 2016 09:18:43 -0700 Subject: [PATCH] Do not return duplicate 'good' emails when repairing a collection If multiple "good" emails match, we should only take one. This also dedupes the bad emails, but without worrying about case sensitivity. --- lib/email_repair/mechanic.rb | 4 ++-- spec/lib/email_repair/mechanic_spec.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/email_repair/mechanic.rb b/lib/email_repair/mechanic.rb index f4aecd1..202c3de 100644 --- a/lib/email_repair/mechanic.rb +++ b/lib/email_repair/mechanic.rb @@ -26,8 +26,8 @@ def repair_all(emails) end OpenStruct.new( - sanitized_emails: sanitized_emails, - invalid_emails: invalid_emails, + sanitized_emails: sanitized_emails.uniq, + invalid_emails: invalid_emails.uniq, ) end diff --git a/spec/lib/email_repair/mechanic_spec.rb b/spec/lib/email_repair/mechanic_spec.rb index c067c19..b6ec817 100644 --- a/spec/lib/email_repair/mechanic_spec.rb +++ b/spec/lib/email_repair/mechanic_spec.rb @@ -5,9 +5,9 @@ module EmailRepair it 'sanitizes an array of emails and returns bulk results' do mechanic = Mechanic.new - salvageable_emails = %w(One@@two.com three@four.com) + salvageable_emails = %w(One@@two.com three@four.com one@twO.com) sanitized_emails = %w(one@two.com three@four.com) - bad_emails = %w(bleep@blop plooooooop) + bad_emails = %w(bleep@blop plooooooop plooOOooop) result = mechanic.repair_all(salvageable_emails + bad_emails) expect(result.sanitized_emails).to match_array sanitized_emails