From fc69c21ebb3f52d4aeacc80e66473fd3257612c6 Mon Sep 17 00:00:00 2001 From: Julian Herrero Date: Thu, 31 Jan 2019 17:07:46 +0100 Subject: [PATCH] Send newsletter emails in order The list of emails for sending newsletters will always be ordered by user creation date, so it will be easier to debug and to know for which users the email has been sent. --- lib/user_segments.rb | 2 +- spec/lib/user_segments_spec.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/user_segments.rb b/lib/user_segments.rb index 096715b26..7bbc8668c 100644 --- a/lib/user_segments.rb +++ b/lib/user_segments.rb @@ -50,7 +50,7 @@ class UserSegments end def self.user_segment_emails(users_segment) - UserSegments.send(users_segment).newsletter.pluck(:email).compact + UserSegments.send(users_segment).newsletter.order(:created_at).pluck(:email).compact end private diff --git a/spec/lib/user_segments_spec.rb b/spec/lib/user_segments_spec.rb index 1a4a965d6..4f1f9ef75 100644 --- a/spec/lib/user_segments_spec.rb +++ b/spec/lib/user_segments_spec.rb @@ -190,4 +190,15 @@ describe UserSegments do end end + describe "#user_segment_emails" do + it "returns list of emails sorted by user creation date" do + create(:user, email: "first@email.com", created_at: 1.day.ago) + create(:user, email: "last@email.com") + + emails = described_class.user_segment_emails(:all_users) + expect(emails.first).to eq "first@email.com" + expect(emails.last).to eq "last@email.com" + end + end + end