@ -79,46 +79,47 @@ describe SurveyResponsesDataLoader do
end
end
context 'when using Lowell rules to skip rows in the csv file' do
before :each do
SurveyResponsesDataLoader . load_data filepath : path_to_student_responses ,
rules : [ Rule :: SkipNonLowellSchools ]
end
it 'rejects any non-lowell school' do
expect ( SurveyItemResponse . where ( response_id : 'student_survey_response_1' ) . count ) . to eq 0
expect ( SurveyItemResponse . count ) . to eq 128
end
it 'loads the correct number of responses for lowell schools' do
expect ( SurveyItemResponse . where ( response_id : 'student_survey_response_2' ) . count ) . to eq 0
expect ( SurveyItemResponse . where ( response_id : 'student_survey_response_3' ) . count ) . to eq 25
expect ( SurveyItemResponse . where ( response_id : 'student_survey_response_4' ) . count ) . to eq 22
expect ( SurveyItemResponse . where ( response_id : 'student_survey_response_5' ) . count ) . to eq 27
end
context 'when loading 22-23 butler survey responses' do
before :each do
SurveyResponsesDataLoader . load_data filepath : path_to_butler_student_responses ,
rules : [ Rule :: SkipNonLowellSchools ]
end
it 'loads all the responses for Butler' do
expect ( SurveyItemResponse . count ) . to eq 400
end
it 'blank entries for grade get loaded as nils, not zero values' do
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_1' ) . first . grade ) . to eq 7
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_2' ) . first . grade ) . to eq 7
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_3' ) . first . grade ) . to eq 7
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_4' ) . first . grade ) . to eq 5
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_5' ) . first . grade ) . to eq 7
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_6' ) . first . grade ) . to eq 6
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_7' ) . first . grade ) . to eq nil
expect ( SurveyItemResponse . where ( response_id : 'butler_student_survey_response_8' ) . first . grade ) . to eq 0
end
end
end
# This file loads the seeder every time, which is slow. Turning it off since the above checks the correct behavior and the below will obviously fail when seeding lowell data
# context 'when using Lowell rules to skip rows in the csv file' do
# before :each do
# SurveyResponsesDataLoader.load_data filepath: path_to_student_responses,
# rules: [Rule::SkipNonLowellSchools]
# end
# it 'rejects any non-lowell school' do
# expect(SurveyItemResponse.where(response_id: 'student_survey_response_1').count).to eq 0
# expect(SurveyItemResponse.count).to eq 128
# end
# it 'loads the correct number of responses for lowell schools' do
# expect(SurveyItemResponse.where(response_id: 'student_survey_response_2').count).to eq 0
# expect(SurveyItemResponse.where(response_id: 'student_survey_response_3').count).to eq 25
# expect(SurveyItemResponse.where(response_id: 'student_survey_response_4').count).to eq 22
# expect(SurveyItemResponse.where(response_id: 'student_survey_response_5').count).to eq 27
# end
# context 'when loading 22-23 butler survey responses' do
# before :each do
# SurveyResponsesDataLoader.load_data filepath: path_to_butler_student_responses,
# rules: [Rule::SkipNonLowellSchools]
# end
# it 'loads all the responses for Butler' do
# expect(SurveyItemResponse.count).to eq 400
# end
# it 'blank entries for grade get loaded as nils, not zero values' do
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_1').first.grade).to eq 7
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_2').first.grade).to eq 7
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_3').first.grade).to eq 7
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_4').first.grade).to eq 5
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_5').first.grade).to eq 7
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_6').first.grade).to eq 6
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_7').first.grade).to eq nil
# expect(SurveyItemResponse.where(response_id: 'butler_student_survey_response_8').first.grade).to eq 0
# end
# end
# end
end
end