fix: failing tests

pull/8/head
Nelson Jovel 1 year ago
parent beb93aa8e8
commit eb6fde5f88

@ -36,15 +36,15 @@ class Overview::OverviewPresenter
end end
def student_response_rate_presenter def student_response_rate_presenter
StudentResponseRatePresenter.new(focus: :student, school: @school, academic_year: @academic_year) StudentResponseRatePresenter.new(school: @school, academic_year: @academic_year)
end end
def teacher_response_rate_presenter def teacher_response_rate_presenter
TeacherResponseRatePresenter.new(focus: :teacher, school: @school, academic_year: @academic_year) TeacherResponseRatePresenter.new(school: @school, academic_year: @academic_year)
end end
def parent_response_rate_presenter def parent_response_rate_presenter
ParentResponseRatePresenter.new(focus: :parent, school: @school, academic_year: @academic_year) ParentResponseRatePresenter.new(school: @school, academic_year: @academic_year)
end end
def presenter_for_measure(measure) def presenter_for_measure(measure)

@ -1,6 +1,6 @@
class ParentResponseRatePresenter < ResponseRatePresenter class ParentResponseRatePresenter < ResponseRatePresenter
def initialize(focus:, academic_year:, school:) def initialize(academic_year:, school:)
super(focus:, academic_year:, school:) super(academic_year:, school:)
@survey_items = SurveyItem.parent_survey_items if focus == :parent @survey_items = SurveyItem.parent_survey_items if focus == :parent
end end
@ -17,4 +17,8 @@ class ParentResponseRatePresenter < ResponseRatePresenter
respondents.total_students respondents.total_students
end end
def focus
"parent"
end
end end

@ -1,8 +1,7 @@
class ResponseRatePresenter class ResponseRatePresenter
attr_reader :focus, :academic_year, :school, :survey_items attr_reader :academic_year, :school, :survey_items
def initialize(focus:, academic_year:, school:) def initialize(academic_year:, school:)
@focus = focus
@academic_year = academic_year @academic_year = academic_year
@school = school @school = school
end end
@ -34,6 +33,10 @@ class ResponseRatePresenter
"Percentages based on #{actual_count} out of #{respondents_count.round} #{focus}s completing at least 25% of the survey." "Percentages based on #{actual_count} out of #{respondents_count.round} #{focus}s completing at least 25% of the survey."
end end
def focus
raise "please implment method: focus"
end
private private
def cap_at_100(value) def cap_at_100(value)

@ -1,6 +1,6 @@
class StudentResponseRatePresenter < ResponseRatePresenter class StudentResponseRatePresenter < ResponseRatePresenter
def initialize(focus:, academic_year:, school:) def initialize(academic_year:, school:)
super(focus:, academic_year:, school:) super(academic_year:, school:)
@survey_items = Measure.all.flat_map do |measure| @survey_items = Measure.all.flat_map do |measure|
measure.student_survey_items_with_sufficient_responses(school:, academic_year:) measure.student_survey_items_with_sufficient_responses(school:, academic_year:)
end end
@ -35,4 +35,8 @@ class StudentResponseRatePresenter < ResponseRatePresenter
enrollment enrollment
end end
def focus
"student"
end
end end

@ -1,6 +1,6 @@
class TeacherResponseRatePresenter < ResponseRatePresenter class TeacherResponseRatePresenter < ResponseRatePresenter
def initialize(focus:, academic_year:, school:) def initialize(academic_year:, school:)
super(focus:, academic_year:, school:) super(academic_year:, school:)
@survey_items = SurveyItem.teacher_survey_items @survey_items = SurveyItem.teacher_survey_items
end end
@ -13,4 +13,8 @@ class TeacherResponseRatePresenter < ResponseRatePresenter
respondents.total_teachers respondents.total_teachers
end end
def focus
"teacher"
end
end end

@ -57,7 +57,7 @@ describe ResponseRatePresenter do
end end
it "ignores all teacher items and only gets the modified date of the last student item" do it "ignores all teacher items and only gets the modified date of the last student item" do
date = ResponseRatePresenter.new(focus: :student, academic_year:, school:).date date = StudentResponseRatePresenter.new(academic_year:, school:).date
expect(date).to eq(newest_student_survey_response.recorded_date) expect(date).to eq(newest_student_survey_response.recorded_date)
end end
end end
@ -70,7 +70,7 @@ describe ResponseRatePresenter do
end end
it "ignores all student responses and only gets the modified date of the last teacher item" do it "ignores all student responses and only gets the modified date of the last teacher item" do
date = ResponseRatePresenter.new(focus: :teacher, academic_year:, school:).date date = TeacherResponseRatePresenter.new(academic_year:, school:).date
expect(date).to eq(newest_teacher_survey_response.recorded_date) expect(date).to eq(newest_teacher_survey_response.recorded_date)
end end
end end
@ -83,7 +83,7 @@ describe ResponseRatePresenter do
end end
context "when no survey responses are found for a school" do context "when no survey responses are found for a school" do
it "returns a response rate of 0" do it "returns a response rate of 0" do
percentage = ResponseRatePresenter.new(focus: :teacher, academic_year:, school:).percentage percentage = TeacherResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(0) expect(percentage).to eq(0)
end end
end end
@ -95,7 +95,7 @@ describe ResponseRatePresenter do
end end
it "returns a response rate of 100" do it "returns a response rate of 100" do
percentage = ResponseRatePresenter.new(focus: :teacher, academic_year:, school:).percentage percentage = TeacherResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(100) expect(percentage).to eq(100)
end end
end end
@ -107,7 +107,7 @@ describe ResponseRatePresenter do
end end
it "returns a response rate of 100" do it "returns a response rate of 100" do
percentage = ResponseRatePresenter.new(focus: :teacher, academic_year:, school:).percentage percentage = TeacherResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(100) expect(percentage).to eq(100)
end end
end end
@ -119,7 +119,7 @@ describe ResponseRatePresenter do
end end
it "returns a response rate of 75" do it "returns a response rate of 75" do
percentage = ResponseRatePresenter.new(focus: :teacher, academic_year:, school:).percentage percentage = TeacherResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(75) expect(percentage).to eq(75)
end end
end end
@ -130,7 +130,7 @@ describe ResponseRatePresenter do
end end
it "returns a response rate of 25" do it "returns a response rate of 25" do
percentage = ResponseRatePresenter.new(focus: :teacher, academic_year:, school:).percentage percentage = TeacherResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(25) expect(percentage).to eq(25)
end end
end end
@ -141,7 +141,7 @@ describe ResponseRatePresenter do
end end
it "its rounded to the nearest integer" do it "its rounded to the nearest integer" do
percentage = ResponseRatePresenter.new(focus: :teacher, academic_year:, school:).percentage percentage = TeacherResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(23) expect(percentage).to eq(23)
end end
end end
@ -153,7 +153,7 @@ describe ResponseRatePresenter do
end end
it "returns a response rate of 100" do it "returns a response rate of 100" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(100) expect(percentage).to eq(100)
end end
end end
@ -164,7 +164,7 @@ describe ResponseRatePresenter do
end end
it "returns a response rate of 50" do it "returns a response rate of 50" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(50) expect(percentage).to eq(50)
end end
end end
@ -185,7 +185,7 @@ describe ResponseRatePresenter do
survey_item: student_survey_item, grade: 1) survey_item: student_survey_item, grade: 1)
end end
it "returns a response rate of 100" do it "returns a response rate of 100" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(100) expect(percentage).to eq(100)
end end
end end
@ -196,7 +196,7 @@ describe ResponseRatePresenter do
survey_item: student_survey_item, grade: 1) survey_item: student_survey_item, grade: 1)
end end
it "returns a response rate of 50" do it "returns a response rate of 50" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(50) expect(percentage).to eq(50)
end end
end end
@ -211,7 +211,7 @@ describe ResponseRatePresenter do
survey_item: student_survey_item, grade: 2) survey_item: student_survey_item, grade: 2)
end end
it "returns a response rate of 100" do it "returns a response rate of 100" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(100) expect(percentage).to eq(100)
end end
end end
@ -223,7 +223,7 @@ describe ResponseRatePresenter do
survey_item: student_survey_item, grade: 2) survey_item: student_survey_item, grade: 2)
end end
it "returns a response rate of 75" do it "returns a response rate of 75" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(75) expect(percentage).to eq(75)
end end
end end
@ -235,7 +235,7 @@ describe ResponseRatePresenter do
survey_item: student_survey_item, grade: 2) survey_item: student_survey_item, grade: 2)
end end
it "returns a response rate of 63 (rounded up from 62.5)" do it "returns a response rate of 63 (rounded up from 62.5)" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(63) expect(percentage).to eq(63)
end end
end end
@ -252,7 +252,7 @@ describe ResponseRatePresenter do
survey_item: student_survey_item, grade: 3) survey_item: student_survey_item, grade: 3)
end end
it "returns a response rate of 100" do it "returns a response rate of 100" do
percentage = ResponseRatePresenter.new(focus: :student, academic_year:, school:).percentage percentage = StudentResponseRatePresenter.new(academic_year:, school:).percentage
expect(percentage).to eq(100) expect(percentage).to eq(100)
end end
end end

@ -73,10 +73,10 @@ describe "overview/index" do
assign :page, assign :page,
Overview::OverviewPresenter.new(params: { view: "student" }, school: @school, Overview::OverviewPresenter.new(params: { view: "student" }, school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school, @student_response_rate_presenter = StudentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school, @teacher_response_rate_presenter = TeacherResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40) Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year, ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
@ -111,10 +111,10 @@ describe "overview/index" do
assign :page, assign :page,
Overview::OverviewPresenter.new(params: { view: "student" }, school: @school, Overview::OverviewPresenter.new(params: { view: "student" }, school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school, @student_response_rate_presenter = StudentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school, @teacher_response_rate_presenter = TeacherResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40) Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year, ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
@ -150,10 +150,10 @@ describe "overview/index" do
assign :page, assign :page,
Overview::OverviewPresenter.new(params: { view: "student" }, school: @school, Overview::OverviewPresenter.new(params: { view: "student" }, school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school, @student_response_rate_presenter = StudentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school, @teacher_response_rate_presenter = TeacherResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40) Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year, ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
@ -181,10 +181,10 @@ describe "overview/index" do
assign :page, assign :page,
Overview::OverviewPresenter.new(params: { view: "student" }, school: @school, Overview::OverviewPresenter.new(params: { view: "student" }, school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school, @student_response_rate_presenter = StudentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school, @teacher_response_rate_presenter = TeacherResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40) Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year, ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
@ -217,12 +217,12 @@ describe "overview/index" do
assign :page, assign :page,
Overview::ParentOverviewPresenter.new(params: { view: "parent" }, school: @school, Overview::ParentOverviewPresenter.new(params: { view: "parent" }, school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school, @student_response_rate_presenter = StudentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school, @teacher_response_rate_presenter = TeacherResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@parent_response_rate_presenter = ResponseRatePresenter.new(focus: :parent, school: @school, @parent_response_rate_presenter = ParentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40) Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year, ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
@ -249,13 +249,12 @@ describe "overview/index" do
assign :page, assign :page,
Overview::ParentOverviewPresenter.new(params: { view: "parent" }, school: @school, Overview::ParentOverviewPresenter.new(params: { view: "parent" }, school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@student_response_rate_presenter = ResponseRatePresenter.new(focus: :student, school: @school, @student_response_rate_presenter = StudentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@teacher_response_rate_presenter = ResponseRatePresenter.new(focus: :teacher, school: @school, @teacher_response_rate_presenter = TeacherResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
@parent_response_rate_presenter = ResponseRatePresenter.new(focus: :parent, school: @school, @parent_response_rate_presenter = ParentResponseRatePresenter.new(school: @school,
academic_year: @academic_year) academic_year: @academic_year)
Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40) Respondent.create!(school: @school, academic_year: @academic_year, total_students: 40, total_teachers: 40)
ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year, ResponseRate.create!(subcategory: Subcategory.first, school: @school, academic_year: @academic_year,
student_response_rate: 100, teacher_response_rate: 100, meets_student_threshold: true, meets_teacher_threshold: true) student_response_rate: 100, teacher_response_rate: 100, meets_student_threshold: true, meets_teacher_threshold: true)

Loading…
Cancel
Save