diff --git a/ruby/lib/jam_ruby/models/email_batch_progression.rb b/ruby/lib/jam_ruby/models/email_batch_progression.rb index 205971a8d..16548eca7 100644 --- a/ruby/lib/jam_ruby/models/email_batch_progression.rb +++ b/ruby/lib/jam_ruby/models/email_batch_progression.rb @@ -127,13 +127,44 @@ module JamRuby '' end - def fetch_recipients(trigger_idx=0) + def fetch_recipients(trigger_idx=0, per_page=500) fetched = [] - per_page = 500 offset = 0 - prev_date_sql = 0==trigger_idx ? 'tt.prev_trigger_date IS NULL' : "tt.prev_trigger_date + interval '#{self.days_diff(trigger_idx)} days' <= '#{Time.now.strftime('%Y-%m-%d %H:%M:%S')}'" -sql =<= '2014-05-19 15:00:25.475491' -ORDER BY tt.id ASC LIMIT 500 OFFSET 0; -=end - def deliver_batch_sets! self.opt_in_count = 0 sent = 0 diff --git a/ruby/spec/jam_ruby/models/email_batch_spec.rb b/ruby/spec/jam_ruby/models/email_batch_spec.rb index 6cfd24c48..627369984 100644 --- a/ruby/spec/jam_ruby/models/email_batch_spec.rb +++ b/ruby/spec/jam_ruby/models/email_batch_spec.rb @@ -8,7 +8,7 @@ describe EmailBatch do describe 'all users' do - before { pending } + # before { pending } let (:email_batch) { FactoryGirl.create(:email_batch) } @@ -58,9 +58,9 @@ describe EmailBatch do context 'user progress' do - describe 'one at a time' do + before { pending } - before { pending } + describe 'one at a time' do let(:batchp) { FactoryGirl.create(:email_batch_progression, :sub_type => :client_notdl) @@ -79,9 +79,9 @@ describe EmailBatch do expect(ProgressMailer.deliveries.length).to eq(1) end end - + describe 'client not downloaded' do - # before { pending } + before { pending } let(:batchp) { FactoryGirl.create(:email_batch_progression, :sub_type => :client_notdl) @@ -100,13 +100,11 @@ describe EmailBatch do end it 'returns no users' do - pending user_ expect(batchp.fetch_recipients.count).to eq(0) end it 'returns user first trigger' do - pending user_ expect(batchp.fetch_recipients(0).count).to eq(0) @@ -145,7 +143,6 @@ describe EmailBatch do end it 'handles existing users' do - pending user_existing expect(batchp.fetch_recipients(0).count).to eq(1) @@ -206,5 +203,22 @@ describe EmailBatch do end end + + describe 'loop bunch of users' do + let(:batchp) { + FactoryGirl.create(:email_batch_progression, :sub_type => :client_notdl) + } + it 'returns no users' do + users = [] + 20.times { |nn| users << FactoryGirl.create(:user) } + expect(batchp.fetch_recipients(0,5).count).to eq(0) + dd = users[0].created_at + batchp.days_past_for_trigger_index(0).days + Timecop.travel(dd) + expect(batchp.fetch_recipients(0,5).count).to eq(20) + users.each { |uu| batchp.make_set(uu, 0) } + expect(batchp.fetch_recipients(0,5).count).to eq(0) + end + end + end end