parent
260b1dd2c3
commit
a0646ba70f
@ -0,0 +1,11 @@
|
|||||||
|
namespace :survey do
|
||||||
|
|
||||||
|
desc 'Text all Recipients ready for an Attempt'
|
||||||
|
task :make_attempts => :environment do
|
||||||
|
Schedule.active.all.each do |schedule|
|
||||||
|
schedule.recipient_schedules.ready.each do |recipient_schedule|
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe "survey:make_attempts" do
|
||||||
|
include_context "rake"
|
||||||
|
|
||||||
|
|
||||||
|
# let(:old_schedule) { stub("csv data") }
|
||||||
|
# let(:paused_schedule) { stub("csv data") }
|
||||||
|
# let(:report) { stub("generated report", :to_csv => csv) }
|
||||||
|
# let(:user_records) { stub("user records for report") }
|
||||||
|
|
||||||
|
before do
|
||||||
|
# ReportGenerator.stubs(:generate)
|
||||||
|
# UsersReport.stubs(:new => report)
|
||||||
|
# User.stubs(:all => user_records)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'should have environment as a prerequisite' do
|
||||||
|
expect(subject.prerequisites).to include("environment")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "finds all active schedules" do
|
||||||
|
subject.invoke
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
describe Schedule do
|
||||||
|
|
||||||
|
describe "active" do
|
||||||
|
|
||||||
|
let!(:school) { School.create!(name: 'School') }
|
||||||
|
let!(:recipient_list) { RecipientList.create!(name: 'Parents', recipient_id_array: [1, 2, 3]) }
|
||||||
|
let!(:kids_recipient_list) { RecipientList.create!(name: 'Kids', recipient_id_array: [4, 5, 6]) }
|
||||||
|
let!(:question_list) { QuestionList.create!(name: 'Questions', question_id_array: [1, 2, 3]) }
|
||||||
|
|
||||||
|
let(:default_schedule_params) {
|
||||||
|
{
|
||||||
|
school: school,
|
||||||
|
recipient_list: recipient_list,
|
||||||
|
question_list: question_list,
|
||||||
|
name: 'Parents Schedule',
|
||||||
|
description: 'Schedule for parent questions',
|
||||||
|
start_date: 1.month.ago,
|
||||||
|
end_date: 11.months.from_now,
|
||||||
|
active: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let!(:active_schedule) do
|
||||||
|
Schedule.create!(default_schedule_params)
|
||||||
|
end
|
||||||
|
|
||||||
|
let!(:active_schedule_kids) do
|
||||||
|
Schedule.create!(default_schedule_params.merge!(name: 'Kids Schedule', recipient_list: kids_recipient_list))
|
||||||
|
end
|
||||||
|
|
||||||
|
let!(:old_schedule) {
|
||||||
|
Schedule.create!(default_schedule_params.merge!(start_date: 13.month.ago, end_date: 1.months.ago))
|
||||||
|
}
|
||||||
|
|
||||||
|
let!(:paused_schedule) {
|
||||||
|
Schedule.create!(default_schedule_params.merge!(active: false))
|
||||||
|
}
|
||||||
|
|
||||||
|
it 'finds active schedules' do
|
||||||
|
active = Schedule.active
|
||||||
|
expect(active.length).to eq(2)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -0,0 +1,19 @@
|
|||||||
|
require "rake"
|
||||||
|
|
||||||
|
shared_context "rake" do
|
||||||
|
let(:rake) { Rake::Application.new }
|
||||||
|
let(:task_name) { self.class.top_level_description }
|
||||||
|
let(:task_path) { "lib/tasks/#{task_name.split(":").first}" }
|
||||||
|
subject { rake[task_name] }
|
||||||
|
|
||||||
|
def loaded_files_excluding_current_rake_file
|
||||||
|
$".reject {|file| file == Rails.root.join("#{task_path}.rake").to_s }
|
||||||
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
|
Rake.application = rake
|
||||||
|
Rake.application.rake_require(task_path, [Rails.root.to_s], loaded_files_excluding_current_rake_file)
|
||||||
|
|
||||||
|
Rake::Task.define_task(:environment)
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
Reference in new issue