diff --git a/app/models/dragnet/survey/submission_parameters_projection.rb b/app/models/dragnet/survey/submission_parameters_projection.rb index 1c0c81f..41597b9 100644 --- a/app/models/dragnet/survey/submission_parameters_projection.rb +++ b/app/models/dragnet/survey/submission_parameters_projection.rb @@ -12,7 +12,7 @@ def project def answers_attributes survey.questions.each_with_object({}) do |q, h| - h[q.id] = %i[answer_id reply_id survey_id question_type_id value] + h[q.id] = %i[question_id reply_id survey_id question_type_id value] end end end diff --git a/spec/models/dragnet/survey/submission_parameters_projection_spec.rb b/spec/models/dragnet/survey/submission_parameters_projection_spec.rb new file mode 100644 index 0000000..f886cca --- /dev/null +++ b/spec/models/dragnet/survey/submission_parameters_projection_spec.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +describe Dragnet::Survey::SubmissionParametersProjection do + subject(:projection) { described_class.new(survey) } + + let(:survey) { Dragnet::Survey.generate! } + + it 'includes id and survey_id' do + expect(projection.project).to include(:id, :survey_id) + end + + it 'includes the correct attributes that are required for answer submission' do + attributes = %i[question_id reply_id survey_id question_type_id value] + + expect(projection.project.last[:answers_attributes].values.first).to eq(attributes) + end +end