From 0ed6cbe6b40f3791e2d2ca8e45e9d12bbb764d63 Mon Sep 17 00:00:00 2001 From: rebuilt Date: Thu, 20 Apr 2023 20:58:15 -0700 Subject: [PATCH] Rename DataAvailability to Summary --- app/models/data_availability.rb | 4 -- app/models/summary.rb | 4 ++ app/models/survey_item.rb | 2 +- app/presenters/admin_data_presenter.rb | 4 +- app/presenters/teacher_survey_presenter.rb | 7 ++- .../admin_data_presenter_spec.rb | 12 ++--- .../student_survey_presenter.rb | 49 +++++++++++++++++++ .../teacher_survey_presenter_spec.rb | 14 +++--- 8 files changed, 74 insertions(+), 22 deletions(-) delete mode 100644 app/models/data_availability.rb create mode 100644 app/models/summary.rb diff --git a/app/models/data_availability.rb b/app/models/data_availability.rb deleted file mode 100644 index 5f710a1d..00000000 --- a/app/models/data_availability.rb +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true - -class DataAvailability < Struct.new(:id, :description, :available?) -end diff --git a/app/models/summary.rb b/app/models/summary.rb new file mode 100644 index 00000000..1ee6ef29 --- /dev/null +++ b/app/models/summary.rb @@ -0,0 +1,4 @@ +# frozen_string_literal: true + +class Summary < Struct.new(:id, :description, :available?) +end diff --git a/app/models/survey_item.rb b/app/models/survey_item.rb index f484e5d9..cef7af2d 100644 --- a/app/models/survey_item.rb +++ b/app/models/survey_item.rb @@ -29,6 +29,6 @@ class SurveyItem < ActiveRecord::Base } def description - DataAvailability.new(survey_item_id, prompt, true) + Summary.new(survey_item_id, prompt, true) end end diff --git a/app/presenters/admin_data_presenter.rb b/app/presenters/admin_data_presenter.rb index ec896e6c..514b9720 100644 --- a/app/presenters/admin_data_presenter.rb +++ b/app/presenters/admin_data_presenter.rb @@ -24,8 +24,8 @@ class AdminDataPresenter < DataItemPresenter def descriptions_and_availability @admin_data_items.map do |admin_data_item| - DataAvailability.new(admin_data_item.admin_data_item_id, admin_data_item.description, - admin_data_item.admin_data_values.where(school:, academic_year:).count > 0) + Summary.new(admin_data_item.admin_data_item_id, admin_data_item.description, + admin_data_item.admin_data_values.where(school:, academic_year:).count > 0) end end end diff --git a/app/presenters/teacher_survey_presenter.rb b/app/presenters/teacher_survey_presenter.rb index 2c4da968..3c36956f 100644 --- a/app/presenters/teacher_survey_presenter.rb +++ b/app/presenters/teacher_survey_presenter.rb @@ -27,10 +27,13 @@ class TeacherSurveyPresenter < DataItemPresenter end def descriptions_and_availability - return [DataAvailability.new('1B-i', 'Items available upon request to MCIEA.', true)] if @measure_id == '1B-i' + if @measure_id == '1B-i' + return [Summary.new('1B-i', 'Items available upon request to MCIEA', + true)] + end survey_items.map do |survey_item| - DataAvailability.new(survey_item.survey_item_id, survey_item.prompt, true) + Summary.new(survey_item.survey_item_id, survey_item.prompt, true) end end end diff --git a/spec/presenters/data_item_presenters/admin_data_presenter_spec.rb b/spec/presenters/data_item_presenters/admin_data_presenter_spec.rb index aa068914..4e4040b3 100644 --- a/spec/presenters/data_item_presenters/admin_data_presenter_spec.rb +++ b/spec/presenters/data_item_presenters/admin_data_presenter_spec.rb @@ -85,9 +85,9 @@ describe AdminDataPresenter do measure_id: measure_1A_i.measure_id, admin_data_items: measure_1A_i.admin_data_items, has_sufficient_data: true, school:, academic_year: ).descriptions_and_availability ).to eq [ - DataAvailability.new('a-exp-i1', 'Percentage teachers with 5+ years of experience', true), - DataAvailability.new('a-exp-i2', 'Percentage teachers National Board certified', false), - DataAvailability.new('a-exp-i3', 'Percentage teachers teaching in area of licensure', false) + Summary.new('a-exp-i1', 'Percentage teachers with 5+ years of experience', true), + Summary.new('a-exp-i2', 'Percentage teachers National Board certified', false), + Summary.new('a-exp-i3', 'Percentage teachers teaching in area of licensure', false) ] end end @@ -98,9 +98,9 @@ describe AdminDataPresenter do measure_id: measure_1A_i.measure_id, admin_data_items: measure_1A_i.admin_data_items, has_sufficient_data: true, school:, academic_year: ).descriptions_and_availability ).to eq [ - DataAvailability.new('a-exp-i1', 'Percentage teachers with 5+ years of experience', false), - DataAvailability.new('a-exp-i2', 'Percentage teachers National Board certified', false), - DataAvailability.new('a-exp-i3', 'Percentage teachers teaching in area of licensure', false) + Summary.new('a-exp-i1', 'Percentage teachers with 5+ years of experience', false), + Summary.new('a-exp-i2', 'Percentage teachers National Board certified', false), + Summary.new('a-exp-i3', 'Percentage teachers teaching in area of licensure', false) ] end end diff --git a/spec/presenters/data_item_presenters/student_survey_presenter.rb b/spec/presenters/data_item_presenters/student_survey_presenter.rb index e69de29b..b410048b 100644 --- a/spec/presenters/data_item_presenters/student_survey_presenter.rb +++ b/spec/presenters/data_item_presenters/student_survey_presenter.rb @@ -0,0 +1,49 @@ +require 'rails_helper' + +describe StudentSurveyPresenter do + let(:school) { nil } + let(:academic_year) { nil } + let(:measure_1A_i) { create(:measure, measure_id: '1A-i') } + let(:scale_1) { create(:student_scale, measure: measure_1A_i) } + let(:survey_item_1) do + create(:student_survey_item, survey_item_id: 's-sbel-q1', scale: scale_1, + prompt: 'I am happy when I am in class.') + end + let(:survey_item_2) do + create(:student_survey_item, survey_item_id: 's-sbel-q2', scale: scale_1, + prompt: 'My teacher gives me help when I need it.') + end + let(:survey_item_3) do + create(:student_survey_item, survey_item_id: 's-sbel-es1', scale: scale_1, + prompt: 'This prompt should not show up') + end + let(:measure_1B_i) { create(:measure, measure_id: '1B-i') } + before do + scale_1 + survey_item_1 + survey_item_2 + survey_item_3 + end + + describe '#descriptions_and_availability' do + context 'When there is a survey item with a blank prompt' do + it 'returns a list containing the survey item properties excluding survey items with blank prompts' do + result = StudentSurveyPresenter.new( + measure_id: measure_1A_i.measure_id, + survey_items: measure_1A_i.student_survey_items, + has_sufficient_data: true, + school:, + academic_year: + ).descriptions_and_availability + expect( + result + ).to eq [ + Summary.new('s-sbel-q1', + 'I am happy when I am in class.', true), + Summary.new('s-sbel-q2', + 'My teacher gives me help when I need it.', true) + ] + end + end + end +end diff --git a/spec/presenters/data_item_presenters/teacher_survey_presenter_spec.rb b/spec/presenters/data_item_presenters/teacher_survey_presenter_spec.rb index 6c126117..533ebf6b 100644 --- a/spec/presenters/data_item_presenters/teacher_survey_presenter_spec.rb +++ b/spec/presenters/data_item_presenters/teacher_survey_presenter_spec.rb @@ -66,12 +66,12 @@ describe TeacherSurveyPresenter do academic_year: ).descriptions_and_availability ).to eq [ - DataAvailability.new('t-1', - 'Given your preparation for teaching how comfortable are you teaching at the grade-level you have been assigned?', true), - DataAvailability.new('t-2', - 'How prepared are you for teaching the topics that you are expected to teach in your assignment?', true), - DataAvailability.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 @@ -86,7 +86,7 @@ describe TeacherSurveyPresenter do academic_year: ).descriptions_and_availability ).to eq [ - DataAvailability.new('1B-i', 'Items available upon request to MCIEA.', true) + Summary.new('1B-i', 'Items available upon request to MCIEA', true) ] end end