mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 21:48:16 -08:00
Convert response rate loader spec from using the seeder to using the factory
This commit is contained in:
parent
06f9d2f0e9
commit
d0219217de
2 changed files with 23 additions and 47 deletions
|
|
@ -4,11 +4,7 @@ class ResponseRateLoader
|
|||
def self.reset(schools: School.all, academic_years: AcademicYear.all, subcategories: Subcategory.all)
|
||||
subcategories.each do |subcategory|
|
||||
schools.each do |school|
|
||||
next if test_env? && (school != milford)
|
||||
|
||||
academic_years.each do |academic_year|
|
||||
next if test_env? && (academic_year != test_year)
|
||||
|
||||
process_response_rate(subcategory:, school:, academic_year:)
|
||||
end
|
||||
end
|
||||
|
|
@ -17,18 +13,6 @@ class ResponseRateLoader
|
|||
|
||||
private
|
||||
|
||||
def self.milford
|
||||
School.find_by_slug 'milford-high-school'
|
||||
end
|
||||
|
||||
def self.test_year
|
||||
AcademicYear.find_by_range '2020-21'
|
||||
end
|
||||
|
||||
def self.rails_env
|
||||
@rails_env ||= ENV['RAILS_ENV']
|
||||
end
|
||||
|
||||
def self.process_response_rate(subcategory:, school:, academic_year:)
|
||||
student = StudentResponseRateCalculator.new(subcategory:, school:, academic_year:)
|
||||
teacher = TeacherResponseRateCalculator.new(subcategory:, school:, academic_year:)
|
||||
|
|
@ -41,13 +25,5 @@ class ResponseRateLoader
|
|||
meets_teacher_threshold: teacher.meets_teacher_threshold?)
|
||||
end
|
||||
|
||||
def self.test_env?
|
||||
rails_env == 'test'
|
||||
end
|
||||
|
||||
private_class_method :milford
|
||||
private_class_method :test_year
|
||||
private_class_method :rails_env
|
||||
private_class_method :process_response_rate
|
||||
private_class_method :test_env?
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,42 +1,41 @@
|
|||
require 'rails_helper'
|
||||
|
||||
describe ResponseRateLoader do
|
||||
let(:school) { School.find_by_slug 'milford-high-school' }
|
||||
let(:academic_year) { AcademicYear.find_by_range '2020-21' }
|
||||
let(:school) { create(:school, name: 'milford-high-school') }
|
||||
let(:academic_year) { create(:academic_year, range: '2020-21') }
|
||||
let(:respondent) do
|
||||
respondent = Respondent.find_or_initialize_by(school:, academic_year:)
|
||||
respondent = create(:respondent, school:, academic_year:)
|
||||
respondent.total_students = 10
|
||||
respondent.total_teachers = 10
|
||||
respondent.save
|
||||
end
|
||||
|
||||
let(:short_form_survey) do
|
||||
survey = Survey.find_by(school:, academic_year:)
|
||||
survey = create(:survey, school:, academic_year:)
|
||||
survey.form = :short
|
||||
survey.save
|
||||
survey
|
||||
end
|
||||
|
||||
let(:subcategory) { Subcategory.find_by_subcategory_id '5D' }
|
||||
let(:subcategory) { create(:subcategory, subcategory_id: '5D', name: 'Health') }
|
||||
let(:measure) { create(:measure, measure_id: '5D-ii', subcategory:) }
|
||||
|
||||
let(:s_acst_q1) { SurveyItem.find_by_survey_item_id 's-acst-q1' }
|
||||
let(:s_acst_q2) { SurveyItem.find_by_survey_item_id 's-acst-q2' } # short form
|
||||
let(:s_acst_q3) { SurveyItem.find_by_survey_item_id 's-acst-q3' }
|
||||
let(:s_poaf_q1) { SurveyItem.find_by_survey_item_id 's-poaf-q1' }
|
||||
let(:s_poaf_q2) { SurveyItem.find_by_survey_item_id 's-poaf-q2' }
|
||||
let(:s_poaf_q3) { SurveyItem.find_by_survey_item_id 's-poaf-q3' } # short form
|
||||
let(:s_poaf_q4) { SurveyItem.find_by_survey_item_id 's-poaf-q4' }
|
||||
let(:t_phya_q2) { SurveyItem.find_by_survey_item_id 't-phya-q2' }
|
||||
let(:t_phya_q3) { SurveyItem.find_by_survey_item_id 't-phya-q3' }
|
||||
|
||||
let(:s_acst) { Scale.find_by_scale_id 's-acst' }
|
||||
let(:s_poaf) { Scale.find_by_scale_id 's-poaf' }
|
||||
let(:t_phya) { Scale.find_by_scale_id 't-phya' }
|
||||
|
||||
let(:response_rate) { ResponseRate.find_by(subcategory:, school:, academic_year:) }
|
||||
let(:s_acst_q1) { create(:survey_item, survey_item_id: 's-acst-q1', scale: s_acst) }
|
||||
let(:s_acst_q2) { create(:survey_item, survey_item_id: 's-acst-q2', scale: s_acst, on_short_form: true) } # short form
|
||||
let(:s_acst_q3) { create(:survey_item, survey_item_id: 's-acst-q3', scale: s_acst) }
|
||||
let(:s_poaf_q1) { create(:survey_item, survey_item_id: 's-poaf-q1', scale: s_poaf) }
|
||||
let(:s_poaf_q2) { create(:survey_item, survey_item_id: 's-poaf-q2', scale: s_poaf) }
|
||||
let(:s_poaf_q3) { create(:survey_item, survey_item_id: 's-poaf-q3', scale: s_poaf, on_short_form: true) } # short form
|
||||
let(:s_poaf_q4) { create(:survey_item, survey_item_id: 's-poaf-q4', scale: s_poaf) }
|
||||
let(:t_phya_q2) { create(:survey_item, survey_item_id: 't-phya-q2', scale: t_phya) }
|
||||
let(:t_phya_q3) { create(:survey_item, survey_item_id: 't-phya-q3', scale: t_phya) }
|
||||
|
||||
let(:s_acst) { create(:scale, scale_id: 's-acst', measure:) }
|
||||
let(:s_poaf) { create(:scale, scale_id: 's-poaf', measure:) }
|
||||
let(:t_phya) { create(:scale, scale_id: 't-phya', measure:) }
|
||||
let(:response_rate) { ResponseRate.find_by(school:, academic_year:) }
|
||||
before do
|
||||
Rails.application.load_seed
|
||||
short_form_survey
|
||||
respondent
|
||||
end
|
||||
|
||||
|
|
@ -47,7 +46,7 @@ describe ResponseRateLoader do
|
|||
describe 'self.reset' do
|
||||
context 'When resetting response rates' do
|
||||
context 'and half the students responded to each question' do
|
||||
before do
|
||||
before :each do
|
||||
create_list(:survey_item_response, 5, survey_item: s_acst_q1, likert_score: 3, school:, academic_year:)
|
||||
create_list(:survey_item_response, 5, survey_item: s_acst_q2, likert_score: 3, school:, academic_year:)
|
||||
create_list(:survey_item_response, 5, survey_item: s_acst_q3, likert_score: 3, school:, academic_year:)
|
||||
|
|
@ -84,9 +83,10 @@ describe ResponseRateLoader do
|
|||
end
|
||||
end
|
||||
|
||||
context 'and only the first question for each scale was asked; e.g. like on a short form' do
|
||||
context 'and only the first question was asked; e.g. its on a short form and this is marked as a short form school' do
|
||||
before do
|
||||
create_list(:survey_item_response, 5, survey_item: s_acst_q1, likert_score: 3, school:, academic_year:)
|
||||
s_acst_q1.update(on_short_form: true)
|
||||
create_list(:survey_item_response, 5, survey_item: s_poaf_q1, likert_score: 3, school:, academic_year:)
|
||||
create_list(:survey_item_response, 5, survey_item: t_phya_q2, likert_score: 3, school:, academic_year:)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue