VRFS-736 tests passing and what-not

This commit is contained in:
Jonathan Kolyer 2014-05-18 05:24:07 +00:00
parent 6e7562ffc8
commit fbb86dd9e7
3 changed files with 50 additions and 27 deletions

View File

@ -38,5 +38,9 @@ module JamRuby
def deliver_batch_sets!
end
def clear_batch_sets!
self.email_batch_sets.map(&:destroy)
end
end
end

View File

@ -93,14 +93,7 @@ module JamRuby
def trigger_date_constraint(trigger_idx, date_column)
intervals = self.class.subtype_trigger_interval(self.sub_type)
case trigger_idx
when 1
return ["#{date_column} >= ? AND #{date_column} < ?",
Time.now - intervals[0].days,
Time.now - intervals[1].days]
else
return ["#{date_column} < ?", Time.now - intervals[trigger_idx].days]
end
["#{date_column} < ?", Time.now - intervals[trigger_idx].days]
end
def fetch_client_notdl(trigger_idx=0)
@ -118,13 +111,17 @@ module JamRuby
fetched
end
def make_set(uu, trigger_idx)
EmailBatchSet.progress_set(self, uu, trigger_idx)
end
def deliver_batch_sets!
self.opt_in_count = 0
sent = 0
3.times do |trigger_idx|
self.send("fetch_#{self.sub_type}", trigger_idx) do |users|
users.each do |uu|
self.email_batch_sets << (bset = EmailBatchSet.progress_set(self, uu, trigger_idx))
self.email_batch_sets << (bset = self.make_set(uu, trigger_idx))
ProgressMailer.send_reminder(bset).deliver
sent += 1
end

View File

@ -2,6 +2,10 @@ require 'spec_helper'
describe EmailBatch do
after(:each) do
Timecop.return
end
describe 'all users' do
let (:email_batch) { FactoryGirl.create(:email_batch) }
@ -59,34 +63,52 @@ describe EmailBatch do
context 'user progress' do
describe 'client not downloaded' do
let(:client_notdl) { FactoryGirl.create(:email_batch_progression, :sub_type => :client_notdl) }
let(:batchp) {
FactoryGirl.create(:email_batch_progression, :sub_type => :client_notdl)
}
let(:user_) { FactoryGirl.create(:user) }
let(:user_trigger0) {
FactoryGirl.create(:user,
:created_at => Time.now - batchp.days_past_for_trigger_index(0).days)
}
let(:user_trigger1) {
FactoryGirl.create(:user,
:created_at => Time.now - batchp.days_past_for_trigger_index(1).days)
}
let(:user_trigger2) {
FactoryGirl.create(:user,
:created_at => Time.now - batchp.days_past_for_trigger_index(2).days)
}
let(:user_client_notdl) { FactoryGirl.create(:user) }
let(:user_client_notdl_trigger0) {
FactoryGirl.create(:user,
:created_at => Time.now - client_notdl.days_past_for_trigger_index(0).days)
}
let(:user_client_notdl_trigger1) {
FactoryGirl.create(:user,
:created_at => Time.now - client_notdl.days_past_for_trigger_index(1).days)
}
let(:user_client_notdl_trigger2) {
FactoryGirl.create(:user,
:created_at => Time.now - client_notdl.days_past_for_trigger_index(2).days)
}
after(:each) do
batchp.clear_batch_sets!
end
it 'returns no users' do
pending
user_client_notdl
expect(client_notdl.fetch_client_notdl.count).to eq(0)
user_
expect(batchp.fetch_client_notdl.count).to eq(0)
end
it 'returns user first trigger' do
user_client_notdl_trigger0
expect(client_notdl.fetch_client_notdl.count).to eq(1)
pending
user_
user_trigger2
expect(batchp.fetch_client_notdl.count).to eq(1)
batchp.make_set(user_trigger2, 0)
expect(batchp.fetch_client_notdl(0).count).to eq(0)
end
it 'returns user second trigger' do
user_
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)
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