Class: DaVinciDTRTestKit::DTRCustomNextQuestionResponseValidationTest

Inherits:
Inferno::Test
  • Object
show all
Defined in:
lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb

Instance Method Summary collapse

Instance Method Details



38
39
40
41
42
43
44
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 38

def extract_link_ids(questionnaire_items)
  questionnaire_items&.each_with_object([]) do |item, link_ids|
    link_ids << item.linkId

    link_ids.concat(extract_link_ids(item.item)) if item.item.present?
  end
end

#next_request_tagObject



34
35
36
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 34

def next_request_tag
  config.options[:next_tag]
end

#validate_correctness_of_custom_next_questionnaire(custom_questionnaire, contained_questionnaire) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/davinci_dtr_test_kit/client_groups/adaptive_questionnaire/custom/dtr_custom_next_question_response_validation_test.rb', line 46

def validate_correctness_of_custom_next_questionnaire(custom_questionnaire, contained_questionnaire)
  custom_items_link_ids = extract_link_ids(custom_questionnaire.item) || []
  contained_items_link_ids = extract_link_ids(contained_questionnaire.item) || []
  missing_items_ids = contained_items_link_ids - custom_items_link_ids

  error_msg = %(
    Custom Questionnaire must include all previous questions along with the next question or set of questions.
  )
  add_message('error', error_msg) if custom_items_link_ids.length <= contained_items_link_ids.length

  error_msg = %(
    Custom Questionnaire must include all previous questions. The following items are missing:
    questions with Link ID `#{missing_items_ids.to_sentence}`.
  )
  add_message('error', error_msg) if missing_items_ids.present?
end