Skip to content

Commit 9035a26

Browse files
committed
Fix MMR dose sequence validation error message
Show programme-specific dose sequence guidance when the uploaded value is not a valid integer, so MMR now correctly says the maximum dose sequence is 2 and gives examples of 1 or 2 instead of the generic 1, 2 or 3 message. Jira-Issue: MAV-2312
1 parent d1042b1 commit 9035a26

2 files changed

Lines changed: 20 additions & 2 deletions

File tree

app/models/immunisation_import_row.rb

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -843,12 +843,18 @@ def validate_dose_sequence
843843

844844
field = dose_sequence || combined_vaccination_and_dose_sequence
845845

846+
dose_sequence_examples =
847+
(1..maximum_dose_sequence).to_a.to_sentence(
848+
last_word_connector: " or ",
849+
two_words_connector: " or "
850+
)
851+
846852
if dose_sequence.present? ||
847853
parsed_vaccination_description_string&.dig(:dose_sequence).present?
848854
if dose_sequence_value.nil?
849855
errors.add(
850856
field.header,
851-
"Enter a dose sequence number, for example, 1, 2 or 3."
857+
"Enter a dose sequence number, for example, #{dose_sequence_examples}."
852858
)
853859
elsif maximum_dose_sequence
854860
if dose_sequence_value < 1
@@ -873,7 +879,7 @@ def validate_dose_sequence
873879
else
874880
errors.add(
875881
field.header,
876-
"Enter a dose sequence number, for example, 1, 2 or 3. The dose sequence number cannot be greater than 6."
882+
"Enter a dose sequence number, for example, #{dose_sequence_examples}."
877883
)
878884
end
879885
end

spec/models/immunisation_import_row_spec.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -575,6 +575,18 @@
575575
end
576576
end
577577

578+
context "with an invalid dose sequence for MMR" do
579+
let(:programmes) { [Programme.mmr] }
580+
let(:data) { { "PROGRAMME" => "MMR", "DOSE_SEQUENCE" => "unknown" } }
581+
582+
it "has the correct error message" do
583+
immunisation_import_row.valid?
584+
expect(immunisation_import_row.errors["DOSE_SEQUENCE"]).to include(
585+
"Enter a dose sequence number, for example, 1 or 2."
586+
)
587+
end
588+
end
589+
578590
context "with an invalid dose sequence" do
579591
let(:programmes) { [Programme.hpv] }
580592

0 commit comments

Comments
 (0)