From a7de5b9ac2039d5b85b253448572374613fe774a Mon Sep 17 00:00:00 2001 From: Alex Basson Date: Tue, 21 Sep 2021 09:47:42 -0400 Subject: [PATCH] Add response id to SurveyItemResponse --- ...dd_response_id_to_survey_item_responses.rb | 5 +++ db/schema.rb | 3 +- .../features/school_dashboard_feature_spec.rb | 4 +-- .../models/survey_response_aggregator_spec.rb | 32 +++++++++---------- 4 files changed, 25 insertions(+), 19 deletions(-) create mode 100644 db/migrate/20210921133545_add_response_id_to_survey_item_responses.rb diff --git a/db/migrate/20210921133545_add_response_id_to_survey_item_responses.rb b/db/migrate/20210921133545_add_response_id_to_survey_item_responses.rb new file mode 100644 index 00000000..ab480d32 --- /dev/null +++ b/db/migrate/20210921133545_add_response_id_to_survey_item_responses.rb @@ -0,0 +1,5 @@ +class AddResponseIdToSurveyItemResponses < ActiveRecord::Migration[5.0] + def change + add_column :survey_item_responses, :response_id, :string, null: false + end +end diff --git a/db/schema.rb b/db/schema.rb index 7251f811..4ee45291 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20210920194221) do +ActiveRecord::Schema.define(version: 20210921133545) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -222,6 +222,7 @@ ActiveRecord::Schema.define(version: 20210920194221) do t.integer "likert_score" t.integer "school_id", null: false t.integer "survey_item_id", null: false + t.string "response_id", null: false end create_table "survey_items", force: :cascade do |t| diff --git a/spec/features/school_dashboard_feature_spec.rb b/spec/features/school_dashboard_feature_spec.rb index 200547c6..d20cb04b 100644 --- a/spec/features/school_dashboard_feature_spec.rb +++ b/spec/features/school_dashboard_feature_spec.rb @@ -14,8 +14,8 @@ feature "School dashboard", type: feature do let(:ay_2020_21) { '2020-21' } before :each do - SurveyItemResponse.create academic_year: ay_2020_21, school: school, survey_item: survey_item_1_for_measure, likert_score: 4 - SurveyItemResponse.create academic_year: ay_2020_21, school: school, survey_item: survey_item_2_for_measure, likert_score: 5 + SurveyItemResponse.create response_id: '123abc', academic_year: ay_2020_21, school: school, survey_item: survey_item_1_for_measure, likert_score: 4 + SurveyItemResponse.create response_id: '456efg', academic_year: ay_2020_21, school: school, survey_item: survey_item_2_for_measure, likert_score: 5 end scenario "User authentication fails" do diff --git a/spec/models/survey_response_aggregator_spec.rb b/spec/models/survey_response_aggregator_spec.rb index 1446e522..83cede54 100644 --- a/spec/models/survey_response_aggregator_spec.rb +++ b/spec/models/survey_response_aggregator_spec.rb @@ -20,29 +20,29 @@ describe SurveyResponseAggregator, type: :model do let(:survey_item_2_for_measure_b) { SurveyItem.create measure: measure_b, survey_item_id: 'si2b' } before :each do - SurveyItemResponse.create academic_year: ay_2020_21, school: school_a, survey_item: survey_item_1_for_measure_a, likert_score: 1 - SurveyItemResponse.create academic_year: ay_2020_21, school: school_a, survey_item: survey_item_2_for_measure_a, likert_score: 2 + SurveyItemResponse.create response_id: '01', academic_year: ay_2020_21, school: school_a, survey_item: survey_item_1_for_measure_a, likert_score: 1 + SurveyItemResponse.create response_id: '02', academic_year: ay_2020_21, school: school_a, survey_item: survey_item_2_for_measure_a, likert_score: 2 - SurveyItemResponse.create academic_year: ay_2020_21, school: school_a, survey_item: survey_item_1_for_measure_b, likert_score: 1 - SurveyItemResponse.create academic_year: ay_2020_21, school: school_a, survey_item: survey_item_2_for_measure_b, likert_score: 3 + SurveyItemResponse.create response_id: '03', academic_year: ay_2020_21, school: school_a, survey_item: survey_item_1_for_measure_b, likert_score: 1 + SurveyItemResponse.create response_id: '04', academic_year: ay_2020_21, school: school_a, survey_item: survey_item_2_for_measure_b, likert_score: 3 - SurveyItemResponse.create academic_year: ay_2020_21, school: school_b, survey_item: survey_item_1_for_measure_a, likert_score: 1 - SurveyItemResponse.create academic_year: ay_2020_21, school: school_b, survey_item: survey_item_2_for_measure_a, likert_score: 4 + SurveyItemResponse.create response_id: '05', academic_year: ay_2020_21, school: school_b, survey_item: survey_item_1_for_measure_a, likert_score: 1 + SurveyItemResponse.create response_id: '06', academic_year: ay_2020_21, school: school_b, survey_item: survey_item_2_for_measure_a, likert_score: 4 - SurveyItemResponse.create academic_year: ay_2020_21, school: school_b, survey_item: survey_item_1_for_measure_b, likert_score: 1 - SurveyItemResponse.create academic_year: ay_2020_21, school: school_b, survey_item: survey_item_2_for_measure_b, likert_score: 5 + SurveyItemResponse.create response_id: '07', academic_year: ay_2020_21, school: school_b, survey_item: survey_item_1_for_measure_b, likert_score: 1 + SurveyItemResponse.create response_id: '08', academic_year: ay_2020_21, school: school_b, survey_item: survey_item_2_for_measure_b, likert_score: 5 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_a, survey_item: survey_item_1_for_measure_a, likert_score: 2 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_a, survey_item: survey_item_2_for_measure_a, likert_score: 3 + SurveyItemResponse.create response_id: '09', academic_year: ay_2021_22, school: school_a, survey_item: survey_item_1_for_measure_a, likert_score: 2 + SurveyItemResponse.create response_id: '10', academic_year: ay_2021_22, school: school_a, survey_item: survey_item_2_for_measure_a, likert_score: 3 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_a, survey_item: survey_item_1_for_measure_b, likert_score: 2 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_a, survey_item: survey_item_2_for_measure_b, likert_score: 4 + SurveyItemResponse.create response_id: '11', academic_year: ay_2021_22, school: school_a, survey_item: survey_item_1_for_measure_b, likert_score: 2 + SurveyItemResponse.create response_id: '12', academic_year: ay_2021_22, school: school_a, survey_item: survey_item_2_for_measure_b, likert_score: 4 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_b, survey_item: survey_item_1_for_measure_a, likert_score: 2 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_b, survey_item: survey_item_2_for_measure_a, likert_score: 5 + SurveyItemResponse.create response_id: '13', academic_year: ay_2021_22, school: school_b, survey_item: survey_item_1_for_measure_a, likert_score: 2 + SurveyItemResponse.create response_id: '14', academic_year: ay_2021_22, school: school_b, survey_item: survey_item_2_for_measure_a, likert_score: 5 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_b, survey_item: survey_item_1_for_measure_b, likert_score: 3 - SurveyItemResponse.create academic_year: ay_2021_22, school: school_b, survey_item: survey_item_2_for_measure_b, likert_score: 5 + SurveyItemResponse.create response_id: '15', academic_year: ay_2021_22, school: school_b, survey_item: survey_item_1_for_measure_b, likert_score: 3 + SurveyItemResponse.create response_id: '16', academic_year: ay_2021_22, school: school_b, survey_item: survey_item_2_for_measure_b, likert_score: 5 end describe '.score' do