Class: DaVinciCRDTestKit::ProposeAlternateRequestCardValidationTest

Inherits:
Inferno::Test
  • Object
show all
Includes:
SuggestionActionsValidation, TestHelper
Defined in:
lib/davinci_crd_test_kit/server_tests/propose_alternate_request_card_validation_test.rb

Constant Summary collapse

EXPECTED_RESOURCE_TYPES =
%w[
  Device DeviceRequest Encounter Medication
  MedicationRequest NutritionOrder ServiceRequest
  VisionPrescription
].freeze

Instance Method Summary collapse

Methods included from SuggestionActionsValidation

#action_fields_validation, #action_required_fields, #action_resource_field_validation, #action_resource_id_field_validation, #action_resource_type_check, #action_type_field_validation, #actions_check, #create_or_update_action_check, #delete_action_check, #draft_orders_bundle_entry_refs, #extract_resource_types_by_action

Methods included from ServerHookRequestValidation

#client_test?, #server_test?

Methods included from HookRequestFieldValidation

#appointment_book_context_check, #bundle_entries_check, #check_patient_scope_requirement, #common_context_fields, #context_optional_fields_by_hook, #context_required_fields_by_hook, #context_selections_check, #context_user_types_by_hook, #context_validate_optional_fields, #encounter_start_or_discharge_context_check, #fhir_auth_fields_valid?, #fhir_authorization_required_fields, #hook_optional_fields, #hook_request_context_check, #hook_request_fhir_auth_check, #hook_request_optional_fields_check, #hook_request_prefetch_check, #hook_request_required_fields_check, #hook_required_fields, #hook_specific_context_check, #hook_user_type_check, #id_only_fields_check, #json_parse, #no_error_validation, #optional_field_resource_types, #order_dispatch_context_check, #order_select_or_sign_context_check, #parse_fhir_bundle_from_context, #query_and_validate_id_field, #request_number, #resource_reference_check, #status_check, #structure_definition_map, #valid_id_format?, #valid_reference_format?, #valid_url?, #validate_hash_fields, #validate_prefetch_coverage, #validate_prefetch_resource, #validate_presence_and_type

Methods included from TestHelper

#parse_json, #verify_at_least_one_test_passes

Instance Method Details

#check_action_type(actions, action_type) ⇒ Object



31
32
33
34
35
# File 'lib/davinci_crd_test_kit/server_tests/propose_alternate_request_card_validation_test.rb', line 31

def check_action_type(actions, action_type)
  actions&.any? do |action|
    action['type'] == action_type && action_resource_type_check(action, EXPECTED_RESOURCE_TYPES)
  end
end

#hook_nameObject



27
28
29
# File 'lib/davinci_crd_test_kit/server_tests/propose_alternate_request_card_validation_test.rb', line 27

def hook_name
  config.options[:hook_name]
end

#propose_alternate_request_card?(card) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
43
44
45
46
# File 'lib/davinci_crd_test_kit/server_tests/propose_alternate_request_card_validation_test.rb', line 37

def propose_alternate_request_card?(card)
  card['suggestions'].any? do |suggestion|
    actions = suggestion['actions']
    has_update = check_action_type(actions, 'update')
    has_delete = check_action_type(actions, 'delete')
    has_create = check_action_type(actions, 'create')

    has_update || (has_delete && has_create)
  end
end