working on schedules

pull/1/head
Jared Cosulich 9 years ago
parent 260b1dd2c3
commit a0646ba70f

@ -7,5 +7,6 @@ class Schedule < ApplicationRecord
validates :recipient_list, presence: true
validates :question_list, presence: true
scope :active, -> { where(active: true).where("start_date <= ? and end_date > ?", Date.today, Date.today) }
end

@ -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

@ -5,6 +5,7 @@ require File.expand_path('../../config/environment', __FILE__)
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'spec_helper'
require 'rspec/rails'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
# Add additional requires below this line. Rails is not loaded until this point!
# Requires supporting ruby files with custom matchers and macros, etc, in

@ -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…
Cancel
Save