mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-13 09:20:38 -07:00
fix: fix broken tests
This commit is contained in:
parent
8dc503f454
commit
0960a32cd0
4 changed files with 110 additions and 123 deletions
|
|
@ -177,7 +177,7 @@ describe Analyze::Presenter do
|
|||
|
||||
context "when multiple academic years are provided in the params hash" do
|
||||
it "returns the academic year with the given ids" do
|
||||
params = { academic_years: "2021-22,2022-23" }
|
||||
params = { academic_year1: "2021-22", academic_year2: "2022-23" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_academic_years).to eq [AcademicYear.find_by_range("2021-22"),
|
||||
AcademicYear.find_by_range("2022-23")]
|
||||
|
|
@ -215,11 +215,11 @@ describe Analyze::Presenter do
|
|||
|
||||
context "when one race is provided in the params hash" do
|
||||
it "returns a single race with the given slug" do
|
||||
params = { races: "white" }
|
||||
params = { "race1-checkbox" => "white" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_races).to eq [Race.find_by_slug("white")]
|
||||
|
||||
params = { races: "black" }
|
||||
params = { "race1-checkbox" => "black" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_races).to eq [Race.find_by_slug("black")]
|
||||
end
|
||||
|
|
@ -227,7 +227,8 @@ describe Analyze::Presenter do
|
|||
|
||||
context "when multiple races are provided in the params hash" do
|
||||
it "returns multiple races with the given slugs" do
|
||||
params = { races: "white,black" }
|
||||
params = { "race1-checkbox" => "white",
|
||||
"race2-checkbox" => "black" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_races).to eq [Race.find_by_slug("white"), Race.find_by_slug("black")]
|
||||
end
|
||||
|
|
@ -307,7 +308,7 @@ describe Analyze::Presenter do
|
|||
|
||||
context "when no grades are provided in the params hash" do
|
||||
it "returns only the set of grades selected even if other grades have sufficient responses" do
|
||||
params = { grades: "1,2,3" }
|
||||
params = { "grade1-checkbox" => "1", "grade2-checkbox" => "2", "grade3-checkbox" => "3" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_grades).to eq [1, 2, 3]
|
||||
end
|
||||
|
|
@ -330,11 +331,11 @@ describe Analyze::Presenter do
|
|||
|
||||
context "when a single gender is provided in the params hash" do
|
||||
it "returns the gender with the given designation" do
|
||||
params = { genders: "female" }
|
||||
params = { "gender1-checkbox" => "female" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_genders).to eq [Gender.find_by_designation("female")]
|
||||
|
||||
params = { genders: "male" }
|
||||
params = { "gender1-checkbox" => "male" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_genders).to eq [Gender.find_by_designation("male")]
|
||||
end
|
||||
|
|
@ -342,7 +343,7 @@ describe Analyze::Presenter do
|
|||
|
||||
context "when multiple genders are provided in the params hash" do
|
||||
it "returns multilple genders with the given designations" do
|
||||
params = { genders: "female,male" }
|
||||
params = { "gender1-checkbox" => "female", "gender2-checkbox" => "male" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.selected_genders).to eq [Gender.find_by_designation("female"),
|
||||
Gender.find_by_designation("male")]
|
||||
|
|
@ -386,10 +387,9 @@ describe Analyze::Presenter do
|
|||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.group.slug).to eq "race"
|
||||
|
||||
# Not yet implemented
|
||||
# params = { group: 'income' }
|
||||
# presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
# expect(presenter.group.slug).to eq 'income'
|
||||
params = { group: "income" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.group.slug).to eq "income"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -411,29 +411,49 @@ describe Analyze::Presenter do
|
|||
end
|
||||
end
|
||||
|
||||
context "when a slice is provided in the params hash" do
|
||||
context "when the graph is all-data" do
|
||||
it "returns the slice with the given slug" do
|
||||
params = { source: "survey-data-only", slice: "students-and-teachers" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-and-teachers"
|
||||
end
|
||||
end
|
||||
|
||||
context "when a slice is provided but the source is left blank " do
|
||||
it "returns the slice from the default source (all-data)" do
|
||||
params = { slice: "students-and-teachers" }
|
||||
params = { graph: "all-data" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "all-data"
|
||||
end
|
||||
end
|
||||
|
||||
context "when a parameter that does not match a slice is provided" do
|
||||
it "it returns the first slice from the chosen source" do
|
||||
params = { source: "survey-data-only", slice: "invalid-slice" }
|
||||
context "when the graph is 'students-and-teachers'" do
|
||||
it "returns the slice with the given slug" do
|
||||
params = { graph: "students-and-teachers" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-and-teachers"
|
||||
end
|
||||
end
|
||||
|
||||
context "when the graph is of a disaggregation group" do
|
||||
it "returns the slice with the given slug" do
|
||||
params = { graph: "students-by-ell" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-by-group"
|
||||
|
||||
params = { graph: "students-by-gender" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-by-group"
|
||||
|
||||
params = { graph: "students-by-grade" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-by-group"
|
||||
|
||||
params = { graph: "students-by-income" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-by-group"
|
||||
|
||||
params = { graph: "students-by-race" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-by-group"
|
||||
|
||||
params = { graph: "students-by-sped" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "students-by-group"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context ".source" do
|
||||
|
|
@ -445,21 +465,21 @@ describe Analyze::Presenter do
|
|||
end
|
||||
end
|
||||
|
||||
context "when a source is provided in the params hash" do
|
||||
context "when a graph is provided in the params hash" do
|
||||
it "returns the source with the given slug" do
|
||||
params = { source: "all-data" }
|
||||
params = { graph: "all-data" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.source.slug).to eq "all-data"
|
||||
|
||||
params = { source: "survey-data-only" }
|
||||
params = { graph: "students-and-teachers" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.source.slug).to eq "survey-data-only"
|
||||
end
|
||||
end
|
||||
|
||||
context "when a parameter that does not match a source is provided" do
|
||||
context "when a parameter that does not match a graph is provided" do
|
||||
it "returns the first item in the list of sources" do
|
||||
params = { source: "invalid-source" }
|
||||
params = { graph: "invalid-source" }
|
||||
presenter = Analyze::Presenter.new(params:, school:, academic_year:)
|
||||
expect(presenter.slice.slug).to eq "all-data"
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,37 +1,37 @@
|
|||
require 'rails_helper'
|
||||
require "rails_helper"
|
||||
|
||||
describe CategoryPresenter do
|
||||
let(:category_presenter) do
|
||||
subcategory1 = Subcategory.create(name: 'A subcategory', subcategory_id: '1')
|
||||
subcategory2 = Subcategory.create(name: 'Another subcategory', subcategory_id: '2')
|
||||
subcategory1 = Subcategory.create(name: "A subcategory", subcategory_id: "1")
|
||||
subcategory2 = Subcategory.create(name: "Another subcategory", subcategory_id: "2")
|
||||
|
||||
category = Category.create(name: 'Some Category', subcategories: [subcategory1, subcategory2],
|
||||
description: 'A description for some Category', short_description: 'A short description for some Category', category_id: '1')
|
||||
category = Category.create(name: "Some Category", subcategories: [subcategory1, subcategory2],
|
||||
description: "A description for some Category", short_description: "A short description for some Category", category_id: "1")
|
||||
return CategoryPresenter.new(category:)
|
||||
end
|
||||
|
||||
let(:teachers_and_leadership_presenter) do
|
||||
category = create(:category, name: 'Teachers & Leadership')
|
||||
category = create(:category, name: "Teachers & Leadership")
|
||||
return CategoryPresenter.new(category:)
|
||||
end
|
||||
|
||||
let(:school_culture_presenter) do
|
||||
category = create(:category, name: 'School Culture')
|
||||
category = create(:category, name: "School Culture")
|
||||
return CategoryPresenter.new(category:)
|
||||
end
|
||||
|
||||
let(:resources_presenter) do
|
||||
category = create(:category, name: 'Resources')
|
||||
category = create(:category, name: "Resources")
|
||||
return CategoryPresenter.new(category:)
|
||||
end
|
||||
|
||||
let(:academic_learning_presenter) do
|
||||
category = create(:category, name: 'Academic Learning')
|
||||
category = create(:category, name: "Academic Learning")
|
||||
return CategoryPresenter.new(category:)
|
||||
end
|
||||
|
||||
let(:community_and_wellbeing_presenter) do
|
||||
category = create(:category, name: 'Community & Wellbeing')
|
||||
category = create(:category, name: "Community & Wellbeing")
|
||||
return CategoryPresenter.new(category:)
|
||||
end
|
||||
|
||||
|
|
@ -39,33 +39,33 @@ describe CategoryPresenter do
|
|||
DatabaseCleaner.clean
|
||||
end
|
||||
|
||||
it 'returns the name, id and description of the category' do
|
||||
expect(category_presenter.name).to eq 'Some Category'
|
||||
expect(category_presenter.description).to eq 'A description for some Category'
|
||||
expect(category_presenter.short_description).to eq 'A short description for some Category'
|
||||
expect(category_presenter.id).to eq '1'
|
||||
it "returns the name, id and description of the category" do
|
||||
expect(category_presenter.name).to eq "Some Category"
|
||||
expect(category_presenter.description).to eq "A description for some Category"
|
||||
expect(category_presenter.short_description).to eq "A short description for some Category"
|
||||
expect(category_presenter.id).to eq "1"
|
||||
end
|
||||
|
||||
it 'maps subcategories to subcategory presenters' do
|
||||
it "maps subcategories to subcategory presenters" do
|
||||
expect(category_presenter.subcategories(academic_year: AcademicYear.new,
|
||||
school: School.new).map(&:name)).to eq [
|
||||
'A subcategory', 'Another subcategory'
|
||||
"A subcategory", "Another subcategory"
|
||||
]
|
||||
end
|
||||
|
||||
it 'returns the correct icon for the given category' do
|
||||
expect(teachers_and_leadership_presenter.icon_class).to eq 'fas fa-apple-alt'
|
||||
expect(school_culture_presenter.icon_class).to eq 'fas fa-school'
|
||||
expect(resources_presenter.icon_class).to eq 'fas fa-users-cog'
|
||||
expect(academic_learning_presenter.icon_class).to eq 'fas fa-graduation-cap'
|
||||
expect(community_and_wellbeing_presenter.icon_class).to eq 'fas fa-heart'
|
||||
it "returns the correct icon for the given category" do
|
||||
expect(teachers_and_leadership_presenter.icon_class).to eq "fas fa-apple-alt"
|
||||
expect(school_culture_presenter.icon_class).to eq "fas fa-school"
|
||||
expect(resources_presenter.icon_class).to eq "fas fa-users-cog"
|
||||
expect(academic_learning_presenter.icon_class).to eq "fas fa-graduation-cap"
|
||||
expect(community_and_wellbeing_presenter.icon_class).to eq "fas fa-heart"
|
||||
end
|
||||
|
||||
it 'returns the correct color for the given category' do
|
||||
expect(teachers_and_leadership_presenter.icon_color_class).to eq 'color-blue'
|
||||
expect(school_culture_presenter.icon_color_class).to eq 'color-red'
|
||||
expect(resources_presenter.icon_color_class).to eq 'color-black'
|
||||
expect(academic_learning_presenter.icon_color_class).to eq 'color-lime'
|
||||
expect(community_and_wellbeing_presenter.icon_color_class).to eq 'color-teal'
|
||||
it "returns the correct color for the given category" do
|
||||
expect(teachers_and_leadership_presenter.icon_color_class).to eq "color-blue"
|
||||
expect(school_culture_presenter.icon_color_class).to eq "color-red"
|
||||
expect(resources_presenter.icon_color_class).to eq "color-black"
|
||||
expect(academic_learning_presenter.icon_color_class).to eq "color-lime"
|
||||
expect(community_and_wellbeing_presenter.icon_color_class).to eq "color-teal"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -40,39 +40,6 @@ describe AdminDataPresenter do
|
|||
admin_data_item_5
|
||||
end
|
||||
|
||||
describe '#item_description' do
|
||||
context 'When the presenter is based on measure 1A-1' do
|
||||
it 'returns a list of survey prompts for teacher survey items' do
|
||||
expect(AdminDataPresenter.new(measure_id: measure_1A_i.measure_id, admin_data_items: measure_1A_i.admin_data_items,
|
||||
has_sufficient_data: true, school:, academic_year:).item_descriptions).to eq [
|
||||
'Percentage teachers with 5+ years of experience', 'Percentage teachers National Board certified', 'Percentage teachers teaching in area of licensure'
|
||||
]
|
||||
end
|
||||
context 'When the measure is missing all admin data values' do
|
||||
it 'if it lacks sufficient data, it shows a warning ' do
|
||||
expect(AdminDataPresenter.new(measure_id: measure_1A_i.measure_id, admin_data_items: measure_1A_i.admin_data_items,
|
||||
has_sufficient_data: false, school:, academic_year:).sufficient_data?).to eq false
|
||||
end
|
||||
end
|
||||
|
||||
context 'When the measure has at least one admin data value' do
|
||||
it 'if it lacks sufficient data, it doesnt show a warning ' do
|
||||
expect(AdminDataPresenter.new(measure_id: measure_1A_i.measure_id, admin_data_items: measure_1A_i.admin_data_items,
|
||||
has_sufficient_data: true, school:, academic_year:).sufficient_data?).to eq true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'When the presenter is based on measure 1A-iii' do
|
||||
it 'returns a message hiding the actual prompts. Instead it presents a message telling the user they can ask for more information' do
|
||||
expect(AdminDataPresenter.new(measure_id: measure_1A_iii.measure_id, admin_data_items: measure_1A_iii.admin_data_items,
|
||||
has_sufficient_data: true, school:, academic_year:).item_descriptions).to eq [
|
||||
'Percent teacher returning (excluding retirement)', 'Percent teachers with 10+ days absent'
|
||||
]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#descriptions_and_availibility' do
|
||||
context 'when there are any matching values for admin data items' do
|
||||
before do
|
||||
|
|
|
|||
|
|
@ -1,27 +1,27 @@
|
|||
require 'rails_helper'
|
||||
require "rails_helper"
|
||||
|
||||
describe TeacherSurveyPresenter do
|
||||
let(:school) { nil }
|
||||
let(:academic_year) { nil }
|
||||
let(:measure_1A_i) { create(:measure, measure_id: '1A-i') }
|
||||
let(:measure_1A_i) { create(:measure, measure_id: "1A-i") }
|
||||
let(:scale_1) { create(:teacher_scale, measure: measure_1A_i) }
|
||||
let(:survey_item_1) do
|
||||
create(:teacher_survey_item, survey_item_id: 't-1', scale: scale_1,
|
||||
prompt: 'Given your preparation for teaching how comfortable are you teaching at the grade-level you have been assigned?')
|
||||
create(:teacher_survey_item, survey_item_id: "t-1", scale: scale_1,
|
||||
prompt: "Given your preparation for teaching how comfortable are you teaching at the grade-level you have been assigned?")
|
||||
end
|
||||
let(:survey_item_2) do
|
||||
create(:teacher_survey_item, survey_item_id: 't-2', scale: scale_1,
|
||||
prompt: 'How prepared are you for teaching the topics that you are expected to teach in your assignment?')
|
||||
create(:teacher_survey_item, survey_item_id: "t-2", scale: scale_1,
|
||||
prompt: "How prepared are you for teaching the topics that you are expected to teach in your assignment?")
|
||||
end
|
||||
let(:survey_item_3) do
|
||||
create(:teacher_survey_item, survey_item_id: 't-3', scale: scale_1,
|
||||
prompt: 'How confident are you in working with the student body at your school?')
|
||||
create(:teacher_survey_item, survey_item_id: "t-3", scale: scale_1,
|
||||
prompt: "How confident are you in working with the student body at your school?")
|
||||
end
|
||||
let(:measure_1B_i) { create(:measure, measure_id: '1B-i') }
|
||||
let(:measure_1B_i) { create(:measure, measure_id: "1B-i") }
|
||||
let(:scale_2) { create(:teacher_scale, measure: measure_1B_i) }
|
||||
let(:survey_item_4) do
|
||||
create(:teacher_survey_item, scale: scale_2,
|
||||
prompt: 'Some prompt that will not be shown. Instead it will say items will be available upon request to MCIEA')
|
||||
prompt: "Some prompt that will not be shown. Instead it will say items will be available upon request to MCIEA")
|
||||
end
|
||||
before do
|
||||
scale_1
|
||||
|
|
@ -32,31 +32,31 @@ describe TeacherSurveyPresenter do
|
|||
survey_item_4
|
||||
end
|
||||
|
||||
describe '#item_description' do
|
||||
context 'When the presenter is based on measure 1A-1' do
|
||||
it 'returns a list of survey prompts for teacher survey items' do
|
||||
describe "#item_description" do
|
||||
context "When the presenter is based on measure 1A-1" do
|
||||
it "returns a list of survey prompts for teacher survey items" do
|
||||
expect(TeacherSurveyPresenter.new(measure_id: measure_1A_i.measure_id, survey_items: measure_1A_i.teacher_survey_items,
|
||||
has_sufficient_data: true, school:, academic_year:).item_descriptions).to eq [
|
||||
'Given your preparation for teaching how comfortable are you teaching at the grade-level you have been assigned?',
|
||||
'How prepared are you for teaching the topics that you are expected to teach in your assignment?',
|
||||
'How confident are you in working with the student body at your school?'
|
||||
"Given your preparation for teaching how comfortable are you teaching at the grade-level you have been assigned?",
|
||||
"How prepared are you for teaching the topics that you are expected to teach in your assignment?",
|
||||
"How confident are you in working with the student body at your school?"
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
context 'When the presenter is based on measure 1B-i' do
|
||||
it 'returns a message hiding the actual prompts. Instead it presents a message telling the user they can ask for more information' do
|
||||
context "When the presenter is based on measure 1B-i" do
|
||||
it "returns a message hiding the actual prompts. Instead it presents a message telling the user they can ask for more information" do
|
||||
expect(TeacherSurveyPresenter.new(measure_id: measure_1B_i.measure_id, survey_items: measure_1B_i.teacher_survey_items,
|
||||
has_sufficient_data: true, school:, academic_year:).item_descriptions).to eq [
|
||||
'Items available upon request to MCIEA.'
|
||||
"Items available upon request to MCIEA."
|
||||
]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#descriptions_and_availability' do
|
||||
context 'When the presenter is NOT based on measure 1B-i' do
|
||||
it 'returns a list containing the survey item properties' do
|
||||
describe "#descriptions_and_availability" do
|
||||
context "When the presenter is NOT based on measure 1B-i" do
|
||||
it "returns a list containing the survey item properties" do
|
||||
expect(
|
||||
TeacherSurveyPresenter.new(
|
||||
measure_id: measure_1A_i.measure_id,
|
||||
|
|
@ -66,17 +66,17 @@ describe TeacherSurveyPresenter do
|
|||
academic_year:
|
||||
).descriptions_and_availability
|
||||
).to eq [
|
||||
Summary.new('t-1',
|
||||
'Given your preparation for teaching how comfortable are you teaching at the grade-level you have been assigned?', true),
|
||||
Summary.new('t-2',
|
||||
'How prepared are you for teaching the topics that you are expected to teach in your assignment?', true),
|
||||
Summary.new('t-3',
|
||||
'How confident are you in working with the student body at your school?', true)
|
||||
Summary.new("t-1",
|
||||
"Given your preparation for teaching how comfortable are you teaching at the grade-level you have been assigned?", true),
|
||||
Summary.new("t-2",
|
||||
"How prepared are you for teaching the topics that you are expected to teach in your assignment?", true),
|
||||
Summary.new("t-3",
|
||||
"How confident are you in working with the student body at your school?", true)
|
||||
]
|
||||
end
|
||||
end
|
||||
context 'When the presenter is based on measure 1B-i' do
|
||||
it 'returns a message hiding the actual prompts. Instead it presents a message telling the user they can ask for more information' do
|
||||
context "When the presenter is based on measure 1B-i" do
|
||||
it "returns a message hiding the actual prompts. Instead it presents a message telling the user they can ask for more information" do
|
||||
expect(
|
||||
TeacherSurveyPresenter.new(
|
||||
measure_id: measure_1B_i.measure_id,
|
||||
|
|
@ -86,7 +86,7 @@ describe TeacherSurveyPresenter do
|
|||
academic_year:
|
||||
).descriptions_and_availability
|
||||
).to eq [
|
||||
Summary.new('1B-i', 'Items available upon request to MCIEA', true)
|
||||
Summary.new("1B-i", "Items available upon request to MCIEA", true)
|
||||
]
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue