@ -45,8 +45,8 @@ describe ResponseRatePresenter do
end
it 'ignores all teacher items and only gets the modified date of the last student item' do
rdat e = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . date
expect ( rdat e) . to eq ( newest_student_survey_response . updated_at )
percentag e = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . date
expect ( percentag e) . to eq ( newest_student_survey_response . updated_at )
end
end
context 'when focus is teacher' do
@ -58,8 +58,8 @@ describe ResponseRatePresenter do
end
it 'ignores all student responses and only gets the modified date of the last teacher item' do
rdat e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . date
expect ( rdat e) . to eq ( newest_teacher_survey_response . updated_at )
percentag e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . date
expect ( percentag e) . to eq ( newest_teacher_survey_response . updated_at )
end
end
end
@ -71,8 +71,8 @@ describe ResponseRatePresenter do
end
context 'when no survey responses are found for a school' do
it 'returns a response rate of 0' do
rdat e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( rdat e) . to eq ( 0 )
percentag e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( percentag e) . to eq ( 0 )
end
end
@ -83,8 +83,8 @@ describe ResponseRatePresenter do
end
it 'returns a response rate of 100' do
rdat e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( rdat e) . to eq ( 100 )
percentag e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( percentag e) . to eq ( 100 )
end
end
@ -95,8 +95,8 @@ describe ResponseRatePresenter do
end
it 'returns a response rate of 100' do
rdat e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( rdat e) . to eq ( 100 )
percentag e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( percentag e) . to eq ( 100 )
end
end
@ -107,8 +107,8 @@ describe ResponseRatePresenter do
end
it 'returns a response rate of 75' do
rdat e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( rdat e) . to eq ( 75 )
percentag e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( percentag e) . to eq ( 75 )
end
end
context 'when one quarter of the teachers responded to the survey' do
@ -118,8 +118,8 @@ describe ResponseRatePresenter do
end
it 'returns a response rate of 25' do
rdat e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( rdat e) . to eq ( 25 )
percentag e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( percentag e) . to eq ( 25 )
end
end
context 'When the percentage is not a round number' do
@ -129,8 +129,8 @@ describe ResponseRatePresenter do
end
it 'its rounded to the nearest integer' do
rdat e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( rdat e) . to eq ( 23 )
percentag e = ResponseRatePresenter . new ( focus : :teacher , academic_year : , school : ) . percentage
expect ( percentag e) . to eq ( 23 )
end
end
@ -141,8 +141,8 @@ describe ResponseRatePresenter do
end
it 'returns a response rate of 100' do
rdat e = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( rdat e) . to eq ( 100 )
percentag e = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentag e) . to eq ( 100 )
end
end
context 'when half of all students responded' do
@ -152,8 +152,98 @@ describe ResponseRatePresenter do
end
it 'returns a response rate of 50' do
rdate = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( rdate ) . to eq ( 50 )
percentage = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentage ) . to eq ( 50 )
end
end
context 'when only a subset of grades was given the survey' do
before :each do
respondents . one = 20
respondents . two = 20
respondents . three = 20
respondents . four = 20
respondents . five = 20
respondents . save
end
context 'and only first grade was given the survey' do
context 'and all the first grade responded' do
before :each do
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 1 )
end
it 'returns a response rate of 100' do
percentage = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentage ) . to eq ( 100 )
end
end
context 'and half of first grade responded' do
before :each do
create_list ( :survey_item_response , 10 , school : , academic_year : ,
survey_item : student_survey_item , grade : 1 )
end
it 'returns a response rate of 50' do
percentage = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentage ) . to eq ( 50 )
end
end
end
context 'and two grades responded' do
context 'and both grades responded fully' do
before :each do
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 1 )
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 2 )
end
it 'returns a response rate of 100' do
percentage = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentage ) . to eq ( 100 )
end
end
context 'and half of first grade responded' do
before :each do
create_list ( :survey_item_response , 10 , school : , academic_year : ,
survey_item : student_survey_item , grade : 1 )
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 2 )
end
it 'returns a response rate of 75' do
percentage = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentage ) . to eq ( 75 )
end
end
context 'and a quarter of first grade responded' do
before :each do
create_list ( :survey_item_response , 5 , school : , academic_year : ,
survey_item : student_survey_item , grade : 1 )
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 2 )
end
it 'returns a response rate of 63 (rounded up from 62.5)' do
percentage = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentage ) . to eq ( 63 )
end
end
end
context 'and three grades responded' do
context 'and all three grades responded fully' do
before :each do
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 1 )
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 2 )
create_list ( :survey_item_response , 20 , school : , academic_year : ,
survey_item : student_survey_item , grade : 3 )
end
it 'returns a response rate of 100' do
percentage = ResponseRatePresenter . new ( focus : :student , academic_year : , school : ) . percentage
expect ( percentage ) . to eq ( 100 )
end
end
end
end
end