VRFS-736 passing tests

This commit is contained in:
Jonathan Kolyer 2014-05-18 06:14:19 +00:00
parent fbb86dd9e7
commit 1271b74bc4
2 changed files with 8 additions and 16 deletions

View File

@ -99,10 +99,9 @@ module JamRuby
def fetch_client_notdl(trigger_idx=0)
fetched = []
rel = User
.joins("LEFT JOIN email_batch_sets AS ebs ON ebs.user_id = users.id AND ebs.sub_type = '#{self.sub_type}'")
.email_opt_in
.musicians
.where("ebs.id IS NULL OR (SELECT MAX(trigger_index) FROM email_batch_sets ebs WHERE ebs.sub_type = '#{self.sub_type}' AND ebs.user_id = users.id ) < #{trigger_idx}")
.where("(((SELECT MAX(trigger_index) FROM email_batch_sets ebs WHERE ebs.sub_type = '#{self.sub_type}' AND ebs.user_id = users.id) < #{trigger_idx}) OR ((SELECT COUNT(*) FROM email_batch_sets ebs WHERE ebs.sub_type = '#{self.sub_type}' AND ebs.user_id = users.id) = 0))")
.where("first_downloaded_client_at IS NULL")
.where(self.trigger_date_constraint(trigger_idx, "users.created_at"))
.find_in_batches(batch_size: 100) do |users|

View File

@ -99,22 +99,15 @@ describe EmailBatch do
expect(batchp.fetch_client_notdl(0).count).to eq(0)
end
it 'returns user second trigger' do
user_
it 'progressively returns expected count' do
Timecop.travel(user_trigger2.created_at + batchp.days_past_for_trigger_index(0).days)
expect(batchp.fetch_client_notdl(0).count).to eq(1)
batchp.make_set(user_trigger2, 0)
expect(batchp.fetch_client_notdl(0).count).to eq(0)
Timecop.travel(Time.now - batchp.days_past_for_trigger_index(1).days)
Timecop.travel(user_trigger2.created_at + batchp.days_past_for_trigger_index(1).days)
expect(batchp.fetch_client_notdl(1).count).to eq(1)
# batchp.make_set(user_trigger0, 0)
# user_trigger1
# expect(batchp.fetch_client_notdl(0).count).to eq(1)
end
it 'returns user third trigger' do
end
it 'returns no users after third trigger' do
batchp.make_set(user_trigger2, 1)
Timecop.travel(user_trigger2.created_at + batchp.days_past_for_trigger_index(2).days)
expect(batchp.fetch_client_notdl(2).count).to eq(1)
end
end