diff --git a/app/models/academic_year.rb b/app/models/academic_year.rb index d43685c6..30ee7097 100644 --- a/app/models/academic_year.rb +++ b/app/models/academic_year.rb @@ -23,8 +23,14 @@ class AcademicYear < ActiveRecord::Base end end + # This may cause problems if academic years get loaded from csv instead of the current method that requires a code change to the seeder script. This is because a change in code will trigger a complete reload of the application whereas loading from csv does not. This means if we change academic year to load from csv, the set of academic years will be stale when new years are added. def self.academic_years - AcademicYear.all.map { |academic_year| [academic_year.range, academic_year] }.to_h + @@academic_years ||= AcademicYear.all.map { |academic_year| [academic_year.range, academic_year] }.to_h + end + + # Needed to reset the academic years when testing with specs that create the same academic year in a before :each block + def self.reset_academic_years + @@academic_years = nil end private_class_method :academic_years diff --git a/app/services/survey_item_values.rb b/app/services/survey_item_values.rb index 560bcc56..3593f10f 100644 --- a/app/services/survey_item_values.rb +++ b/app/services/survey_item_values.rb @@ -57,7 +57,7 @@ class SurveyItemValues end def schools - School.all.map { |school| [school.dese_id, school] }.to_h + @schools ||= School.all.map { |school| [school.dese_id, school] }.to_h end def grade @@ -65,7 +65,7 @@ class SurveyItemValues raw_grade = (row['grade'] || row['Grade'] || row['What grade are you in?']) return nil if raw_grade.blank? - raw_grade = raw_grade.to_i + raw_grade.to_i end end diff --git a/spec/services/survey_responses_data_loader_spec.rb b/spec/services/survey_responses_data_loader_spec.rb index ad21c156..88b694f2 100644 --- a/spec/services/survey_responses_data_loader_spec.rb +++ b/spec/services/survey_responses_data_loader_spec.rb @@ -86,6 +86,8 @@ describe SurveyResponsesDataLoader do end before :each do + AcademicYear.reset_academic_years + setup end