us_core_test_kit 0.2.1 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/us_core_test_kit/custom_groups/clinical_note_attachment_test.rb +2 -2
  3. data/lib/us_core_test_kit/custom_groups/clinical_note_type_test.rb +11 -6
  4. data/lib/us_core_test_kit/fhir_resource_navigation.rb +11 -3
  5. data/lib/us_core_test_kit/generated/v3.1.1/allergy_intolerance/allergy_intolerance_validation_test.rb +5 -2
  6. data/lib/us_core_test_kit/generated/v3.1.1/bodyheight/bodyheight_validation_test.rb +5 -2
  7. data/lib/us_core_test_kit/generated/v3.1.1/bodytemp/bodytemp_validation_test.rb +5 -2
  8. data/lib/us_core_test_kit/generated/v3.1.1/bodyweight/bodyweight_validation_test.rb +5 -2
  9. data/lib/us_core_test_kit/generated/v3.1.1/bp/bp_validation_test.rb +5 -2
  10. data/lib/us_core_test_kit/generated/v3.1.1/care_plan/care_plan_validation_test.rb +5 -2
  11. data/lib/us_core_test_kit/generated/v3.1.1/care_team/care_team_validation_test.rb +5 -2
  12. data/lib/us_core_test_kit/generated/v3.1.1/condition/condition_validation_test.rb +5 -2
  13. data/lib/us_core_test_kit/generated/v3.1.1/device/device_must_support_test.rb +1 -2
  14. data/lib/us_core_test_kit/generated/v3.1.1/device/device_validation_test.rb +5 -2
  15. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_lab/diagnostic_report_lab_validation_test.rb +5 -2
  16. data/lib/us_core_test_kit/generated/v3.1.1/diagnostic_report_note/diagnostic_report_note_validation_test.rb +5 -2
  17. data/lib/us_core_test_kit/generated/v3.1.1/document_reference/document_reference_must_support_test.rb +1 -2
  18. data/lib/us_core_test_kit/generated/v3.1.1/document_reference/document_reference_validation_test.rb +5 -2
  19. data/lib/us_core_test_kit/generated/v3.1.1/encounter/encounter_validation_test.rb +5 -2
  20. data/lib/us_core_test_kit/generated/v3.1.1/goal/goal_validation_test.rb +5 -2
  21. data/lib/us_core_test_kit/generated/v3.1.1/head_circumference/head_circumference_validation_test.rb +5 -2
  22. data/lib/us_core_test_kit/generated/v3.1.1/heartrate/heartrate_validation_test.rb +5 -2
  23. data/lib/us_core_test_kit/generated/v3.1.1/immunization/immunization_validation_test.rb +5 -2
  24. data/lib/us_core_test_kit/generated/v3.1.1/medication_request/medication_request_validation_test.rb +5 -2
  25. data/lib/us_core_test_kit/generated/v3.1.1/medication_request/medication_validation_test.rb +4 -2
  26. data/lib/us_core_test_kit/generated/v3.1.1/observation_lab/observation_lab_validation_test.rb +5 -2
  27. data/lib/us_core_test_kit/generated/v3.1.1/organization/organization_validation_test.rb +5 -2
  28. data/lib/us_core_test_kit/generated/v3.1.1/patient/patient_validation_test.rb +5 -2
  29. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_bmi_for_age/pediatric_bmi_for_age_validation_test.rb +5 -2
  30. data/lib/us_core_test_kit/generated/v3.1.1/pediatric_weight_for_height/pediatric_weight_for_height_validation_test.rb +5 -2
  31. data/lib/us_core_test_kit/generated/v3.1.1/practitioner/practitioner_validation_test.rb +5 -2
  32. data/lib/us_core_test_kit/generated/v3.1.1/procedure/procedure_validation_test.rb +5 -2
  33. data/lib/us_core_test_kit/generated/v3.1.1/provenance/provenance_validation_test.rb +5 -2
  34. data/lib/us_core_test_kit/generated/v3.1.1/pulse_oximetry/pulse_oximetry_validation_test.rb +5 -2
  35. data/lib/us_core_test_kit/generated/v3.1.1/resprate/resprate_validation_test.rb +5 -2
  36. data/lib/us_core_test_kit/generated/v3.1.1/smokingstatus/smokingstatus_validation_test.rb +5 -2
  37. data/lib/us_core_test_kit/generated/v3.1.1/us_core_test_suite.rb +2 -2
  38. data/lib/us_core_test_kit/generated/v4.0.0/allergy_intolerance/allergy_intolerance_validation_test.rb +5 -2
  39. data/lib/us_core_test_kit/generated/v4.0.0/blood_pressure/blood_pressure_validation_test.rb +5 -2
  40. data/lib/us_core_test_kit/generated/v4.0.0/bmi/bmi_validation_test.rb +5 -2
  41. data/lib/us_core_test_kit/generated/v4.0.0/body_height/body_height_validation_test.rb +5 -2
  42. data/lib/us_core_test_kit/generated/v4.0.0/body_temperature/body_temperature_validation_test.rb +5 -2
  43. data/lib/us_core_test_kit/generated/v4.0.0/body_weight/body_weight_validation_test.rb +5 -2
  44. data/lib/us_core_test_kit/generated/v4.0.0/care_plan/care_plan_validation_test.rb +5 -2
  45. data/lib/us_core_test_kit/generated/v4.0.0/care_team/care_team_validation_test.rb +5 -2
  46. data/lib/us_core_test_kit/generated/v4.0.0/condition/condition_validation_test.rb +5 -2
  47. data/lib/us_core_test_kit/generated/v4.0.0/device/device_validation_test.rb +5 -2
  48. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_lab/diagnostic_report_lab_validation_test.rb +5 -2
  49. data/lib/us_core_test_kit/generated/v4.0.0/diagnostic_report_note/diagnostic_report_note_validation_test.rb +5 -2
  50. data/lib/us_core_test_kit/generated/v4.0.0/document_reference/document_reference_must_support_test.rb +1 -2
  51. data/lib/us_core_test_kit/generated/v4.0.0/document_reference/document_reference_validation_test.rb +5 -2
  52. data/lib/us_core_test_kit/generated/v4.0.0/encounter/encounter_must_support_test.rb +2 -4
  53. data/lib/us_core_test_kit/generated/v4.0.0/encounter/encounter_validation_test.rb +5 -2
  54. data/lib/us_core_test_kit/generated/v4.0.0/goal/goal_validation_test.rb +5 -2
  55. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference/head_circumference_validation_test.rb +5 -2
  56. data/lib/us_core_test_kit/generated/v4.0.0/head_circumference_percentile/head_circumference_percentile_validation_test.rb +5 -2
  57. data/lib/us_core_test_kit/generated/v4.0.0/heart_rate/heart_rate_validation_test.rb +5 -2
  58. data/lib/us_core_test_kit/generated/v4.0.0/immunization/immunization_validation_test.rb +5 -2
  59. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_must_support_test.rb +1 -2
  60. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_request_validation_test.rb +5 -2
  61. data/lib/us_core_test_kit/generated/v4.0.0/medication_request/medication_validation_test.rb +4 -2
  62. data/lib/us_core_test_kit/generated/v4.0.0/metadata.yml +20 -2
  63. data/lib/us_core_test_kit/generated/v4.0.0/observation_lab/observation_lab_validation_test.rb +5 -2
  64. data/lib/us_core_test_kit/generated/v4.0.0/organization/organization_validation_test.rb +5 -2
  65. data/lib/us_core_test_kit/generated/v4.0.0/patient/metadata.yml +20 -1
  66. data/lib/us_core_test_kit/generated/v4.0.0/patient/patient_must_support_test.rb +9 -5
  67. data/lib/us_core_test_kit/generated/v4.0.0/patient/patient_validation_test.rb +5 -2
  68. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_bmi_for_age/pediatric_bmi_for_age_validation_test.rb +5 -2
  69. data/lib/us_core_test_kit/generated/v4.0.0/pediatric_weight_for_height/pediatric_weight_for_height_validation_test.rb +5 -2
  70. data/lib/us_core_test_kit/generated/v4.0.0/practitioner/practitioner_validation_test.rb +5 -2
  71. data/lib/us_core_test_kit/generated/v4.0.0/procedure/procedure_validation_test.rb +5 -2
  72. data/lib/us_core_test_kit/generated/v4.0.0/provenance/metadata.yml +0 -1
  73. data/lib/us_core_test_kit/generated/v4.0.0/provenance/provenance_validation_test.rb +5 -2
  74. data/lib/us_core_test_kit/generated/v4.0.0/pulse_oximetry/pulse_oximetry_validation_test.rb +5 -2
  75. data/lib/us_core_test_kit/generated/v4.0.0/respiratory_rate/respiratory_rate_validation_test.rb +5 -2
  76. data/lib/us_core_test_kit/generated/v4.0.0/smokingstatus/smokingstatus_validation_test.rb +5 -2
  77. data/lib/us_core_test_kit/generated/v4.0.0/us_core_test_suite.rb +2 -2
  78. data/lib/us_core_test_kit/generator/must_support_metadata_extractor.rb +35 -22
  79. data/lib/us_core_test_kit/generator/must_support_test_generator.rb +26 -3
  80. data/lib/us_core_test_kit/generator/validation_test_generator.rb +7 -0
  81. data/lib/us_core_test_kit/must_support_test.rb +19 -3
  82. data/lib/us_core_test_kit/search_test.rb +104 -46
  83. data/lib/us_core_test_kit/validation_test.rb +9 -3
  84. data/lib/us_core_test_kit/version.rb +3 -1
  85. metadata +2 -2
@@ -84,6 +84,12 @@ module USCoreTestKit
84
84
  read_interaction[:expectation]
85
85
  end
86
86
 
87
+ def skip_if_empty
88
+ # Return true if a system must demonstrate at least one example of the resource type.
89
+ # This drives omit vs. skip result statuses in this test.
90
+ resource_type != 'Medication'
91
+ end
92
+
87
93
  def generate
88
94
  FileUtils.mkdir_p(output_file_directory)
89
95
  File.open(output_file_name, 'w') { |f| f.write(output) }
@@ -121,6 +127,7 @@ module USCoreTestKit
121
127
  <<~GENERIC_INTRO
122
128
  This test verifies resources returned from the first search conform to
123
129
  the [#{profile_name}](#{profile_url}).
130
+ Systems must demonstrate at least one valid example in order to pass this test.
124
131
  GENERIC_INTRO
125
132
  end
126
133
  end
@@ -36,8 +36,16 @@ module USCoreTestKit
36
36
  end
37
37
  end
38
38
 
39
+ def include_uscdi_only_test?
40
+ config.options[:include_uscdi_only_test] == true
41
+ end
42
+
39
43
  def must_support_extensions
40
- metadata.must_supports[:extensions]
44
+ if include_uscdi_only_test?
45
+ metadata.must_supports[:extensions]
46
+ else
47
+ metadata.must_supports[:extensions].reject{ |extension| extension[:uscdi_only] }
48
+ end
41
49
  end
42
50
 
43
51
  def missing_extensions(resources = [])
@@ -50,7 +58,11 @@ module USCoreTestKit
50
58
  end
51
59
 
52
60
  def must_support_elements
53
- metadata.must_supports[:elements]
61
+ if include_uscdi_only_test?
62
+ metadata.must_supports[:elements]
63
+ else
64
+ metadata.must_supports[:elements].reject{ |element| element[:uscdi_only] }
65
+ end
54
66
  end
55
67
 
56
68
  def missing_elements(resources = [])
@@ -85,7 +97,11 @@ module USCoreTestKit
85
97
  end
86
98
 
87
99
  def must_support_slices
88
- metadata.must_supports[:slices]
100
+ if include_uscdi_only_test?
101
+ metadata.must_supports[:slices]
102
+ else
103
+ metadata.must_supports[:slices].reject{ |slice| slice[:uscdi_only] }
104
+ end
89
105
  end
90
106
 
91
107
  def missing_slices(resources = [])
@@ -31,7 +31,7 @@ module USCoreTestKit
31
31
  if fixed_value_search?
32
32
  fixed_value_search_param_values.map { |value| fixed_value_search_params(value, patient_id) }
33
33
  else
34
- [search_params_with_values(patient_id)]
34
+ [search_params_with_values(search_param_names, patient_id)]
35
35
  end
36
36
  new_params.reject! do |params|
37
37
  params.any? { |_key, value| value.blank? }
@@ -135,6 +135,9 @@ module USCoreTestKit
135
135
  check_search_response
136
136
 
137
137
  post_search_resources = fetch_all_bundled_resources.select { |resource| resource.resourceType == resource_type }
138
+
139
+ filter_devices(post_search_resources) if resource_type == 'Device'
140
+
138
141
  get_resource_count = get_search_resources.length
139
142
  post_resource_count = post_search_resources.length
140
143
 
@@ -240,10 +243,11 @@ module USCoreTestKit
240
243
  new_search_params = params.merge('patient' => "Patient/#{params['patient']}")
241
244
  search_and_check_response(new_search_params)
242
245
 
243
- new_resource_count =
244
- fetch_all_bundled_resources
245
- .select { |resource| resource.resourceType == resource_type }
246
- .count
246
+ reference_with_type_resources = fetch_all_bundled_resources.select { |resource| resource.resourceType == resource_type }
247
+
248
+ filter_devices(reference_with_type_resources) if resource_type == 'Device'
249
+
250
+ new_resource_count = reference_with_type_resources.count
247
251
 
248
252
  assert new_resource_count == resource_count,
249
253
  "Expected search by `#{params['patient']}` to to return the same results as searching " \
@@ -256,9 +260,7 @@ module USCoreTestKit
256
260
  def perform_search_with_system(params, patient_id)
257
261
  return if search_variant_test_records[:token_variants]
258
262
 
259
- new_search_params = token_search_params.each_with_object({}) do |name, search_params|
260
- search_params[name] = search_param_value(name, patient_id, include_system: true)
261
- end
263
+ new_search_params = search_params_with_values(token_search_params, patient_id, include_system: true)
262
264
  return if new_search_params.any? { |_name, value| value.blank? }
263
265
 
264
266
  search_params = params.merge(new_search_params)
@@ -308,7 +310,7 @@ module USCoreTestKit
308
310
  definition = metadata.search_definitions[param_name]
309
311
  return [] if definition.blank?
310
312
 
311
- definition[:multiple_or] == 'SHALL' ? [definition[:values].join(',')] : [definition[:values]]
313
+ definition[:multiple_or] == 'SHALL' ? [definition[:values].join(',')] : Array.wrap(definition[:values])
312
314
  end
313
315
 
314
316
 
@@ -317,7 +319,7 @@ module USCoreTestKit
317
319
 
318
320
  all_search_params.each do |patient_id, params_list|
319
321
  next unless params_list.present?
320
-
322
+
321
323
  search_params = params_list.first
322
324
  existing_values = {}
323
325
  missing_values = {}
@@ -423,11 +425,29 @@ module USCoreTestKit
423
425
  end
424
426
  end
425
427
 
426
- def search_params_with_values(patient_id)
427
- search_param_names.each_with_object({}) do |name, params|
428
- value = patient_id_param?(name) ? patient_id : search_param_value(name, patient_id)
429
- params[name] = value
428
+ def search_params_with_values(search_param_names, patient_id, include_system: false)
429
+ resources = scratch_resources_for_patient(patient_id)
430
+
431
+ if resources.empty?
432
+ return search_param_names.each_with_object({}) do |name, params|
433
+ value = patient_id_param?(name) ? patient_id : nil
434
+ params[name] = value
435
+ end
436
+ end
437
+
438
+ params_with_partial_value = resources.each_with_object({}) do |resource, outer_params|
439
+ results_from_one_resource = search_param_names.each_with_object({}) do |name, params|
440
+ value = patient_id_param?(name) ? patient_id : search_param_value(name, resource, include_system: include_system)
441
+ params[name] = value
442
+ end
443
+
444
+ outer_params.merge!(results_from_one_resource)
445
+
446
+ # stop if all parameter values are found
447
+ return outer_params if outer_params.all? { |_key, value| value.present? }
430
448
  end
449
+
450
+ params_with_partial_value
431
451
  end
432
452
 
433
453
  def patient_id_list
@@ -446,10 +466,10 @@ module USCoreTestKit
446
466
 
447
467
  def search_param_paths(name)
448
468
  paths = metadata.search_definitions[name.to_sym][:paths]
449
- if paths.first =='class'
469
+ if paths.first =='class'
450
470
  paths[0] = 'local_class'
451
471
  end
452
-
472
+
453
473
  paths
454
474
  end
455
475
 
@@ -470,8 +490,13 @@ module USCoreTestKit
470
490
  end
471
491
 
472
492
  def no_resources_skip_message(resource_type = self.resource_type)
473
- "No #{resource_type} resources appear to be available. " \
474
- "Please use patients with more information"
493
+ msg = "No #{resource_type} resources appear to be available"
494
+
495
+ if (resource_type == 'Device' && implantable_device_codes.present?)
496
+ msg.concat(" with the following Device Type Code filter: #{implantable_device_codes}")
497
+ end
498
+
499
+ msg + ". Please use patients with more information"
475
500
  end
476
501
 
477
502
  def fetch_all_bundled_resources(
@@ -507,11 +532,16 @@ module USCoreTestKit
507
532
  valid_resource_types = [resource_type, 'OperationOutcome'].concat(additional_resource_types)
508
533
  valid_resource_types << 'Medication' if resource_type == 'MedicationRequest'
509
534
 
510
- all_valid_resource_types =
511
- resources.all? { |entry| valid_resource_types.include? entry.resourceType }
535
+ invalid_resource_types =
536
+ resources.reject { |entry| valid_resource_types.include? entry.resourceType }
537
+ .map(&:resourceType)
538
+ .uniq
512
539
 
513
- assert all_valid_resource_types,
514
- "All resources returned must be of the type: #{valid_resource_types.join(', ')}"
540
+ if invalid_resource_types.any?
541
+ info "Received resource type(s) #{invalid_resource_types.join(', ')} in search bundle, " \
542
+ "but only expected resource types #{valid_resource_types.join(', ')}. " + \
543
+ "This is unusual but allowed if the server believes additional resource types are relevant."
544
+ end
515
545
 
516
546
  resources
517
547
  end
@@ -520,11 +550,11 @@ module USCoreTestKit
520
550
  "Could not resolve next bundle: #{link}"
521
551
  end
522
552
 
523
- def search_param_value(name, patient_id, include_system: false)
553
+ def search_param_value(name, resource, include_system: false)
524
554
  paths = search_param_paths(name)
525
555
  search_value = nil
526
556
  paths.each do |path|
527
- element = find_a_value_at(scratch_resources_for_patient(patient_id), path)
557
+ element = find_a_value_at(resource, path) { |element| element_has_valid_value?(element, include_system) }
528
558
 
529
559
  search_value =
530
560
  case element
@@ -541,34 +571,37 @@ module USCoreTestKit
541
571
  if include_system
542
572
  coding =
543
573
  find_a_value_at(element, 'coding') { |coding| coding.code.present? && coding.system.present? }
544
- coding.present? ? "#{coding.system}|#{coding.code}" : nil
574
+ "#{coding.system}|#{coding.code}"
545
575
  else
546
576
  find_a_value_at(element, 'coding.code')
547
577
  end
548
578
  when FHIR::Identifier
549
- if include_system
550
- identifier = find_a_value_at(scratch_resources_for_patient(patient_id), path) do |identifier|
551
- identifier.value.present? && identifier.system.present?
552
- end
553
- identifier.present? ? "#{identifier.system}|#{identifier.value}" : nil
554
- else
555
- element.value
556
- end
579
+ include_system ? "#{element.system}|#{element.value}" : element.value
557
580
  when FHIR::Coding
558
- if include_system
559
- coding = find_a_value_at(scratch_resources_for_patient(patient_id), path) do |coding|
560
- coding.code.present? && coding.system.present?
561
- end
562
- coding.present? ? "#{coding.system}|#{coding.code}" : nil
563
- else
564
- element.code
565
- end
581
+ include_system ? "#{element.system}|#{element.code}" : element.code
566
582
  when FHIR::HumanName
567
583
  element.family || element.given&.first || element.text
568
584
  when FHIR::Address
569
585
  element.text || element.city || element.state || element.postalCode || element.country
570
586
  else
571
- element
587
+ if metadata.version != 'v3.1.1' &&
588
+ metadata.search_definitions[name.to_sym][:type] == 'date' &&
589
+ params_with_comparators&.include?(name)
590
+ # convert date search to greath-than comparator search with correct precision
591
+ # For all date search parameters:
592
+ # Patient.birthDate does not mandate comparators so cannot be converted
593
+ # Goal.target-date has day precision
594
+ # All others have second + time offset precision
595
+ if /^\d{4}$/.match?(element) || # YYYY
596
+ /^\d{4}-\d{2}$/.match?(element) || # YYYY-MM
597
+ (/^\d{4}-\d{2}-\d{2}$/.match?(element) && resource_type != "Goal") # YYYY-MM-DD AND Resource is NOT Goal
598
+ "gt#{(DateTime.xmlschema(element)-1).xmlschema}"
599
+ else
600
+ element
601
+ end
602
+ else
603
+ element
604
+ end
572
605
  end
573
606
 
574
607
  break if search_value.present?
@@ -578,6 +611,31 @@ module USCoreTestKit
578
611
  escaped_value
579
612
  end
580
613
 
614
+ def element_has_valid_value?(element, include_system)
615
+ case element
616
+ when FHIR::Reference
617
+ element.reference.present?
618
+ when FHIR::CodeableConcept
619
+ if include_system
620
+ coding =
621
+ find_a_value_at(element, 'coding') { |coding| coding.code.present? && coding.system.present? }
622
+ coding.present?
623
+ else
624
+ find_a_value_at(element, 'coding.code').present?
625
+ end
626
+ when FHIR::Identifier
627
+ include_system ? element.value.present? && element.system.present? : element.value.present?
628
+ when FHIR::Coding
629
+ include_system ? element.code.present? && element.system.present? : element.code.present?
630
+ when FHIR::HumanName
631
+ (element.family || element.given&.first || element.text).present?
632
+ when FHIR::Address
633
+ (element.text || element.city || element.state || element.postalCode || element.country).present?
634
+ else
635
+ true
636
+ end
637
+ end
638
+
581
639
  def save_resource_reference(resource_type, reference)
582
640
  scratch[:references] ||= {}
583
641
  scratch[:references][resource_type] ||= Set.new
@@ -647,9 +705,9 @@ module USCoreTestKit
647
705
  address&.country&.downcase&.start_with?(search_value_downcase)
648
706
  end
649
707
  when 'CodeableConcept'
650
- # FHIR token search (https://www.hl7.org/fhir/search.html#token): "When in doubt, servers SHOULD
651
- # treat tokens in a case-insensitive manner, on the grounds that including undesired data has
652
- # less safety implications than excluding desired behavior".
708
+ # FHIR token search (https://www.hl7.org/fhir/search.html#token): "When in doubt, servers SHOULD
709
+ # treat tokens in a case-insensitive manner, on the grounds that including undesired data has
710
+ # less safety implications than excluding desired behavior".
653
711
  codings = values_found.flat_map(&:coding)
654
712
  if search_value.include? '|'
655
713
  system = search_value.split('|').first
@@ -691,7 +749,7 @@ module USCoreTestKit
691
749
  values_found.any? { |value_found| search_values.include? value_found }
692
750
  end
693
751
  end
694
-
752
+
695
753
  break if match_found
696
754
  end
697
755
 
@@ -3,9 +3,15 @@ module USCoreTestKit
3
3
  DAR_CODE_SYSTEM_URL = 'http://terminology.hl7.org/CodeSystem/data-absent-reason'.freeze
4
4
  DAR_EXTENSION_URL = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason'.freeze
5
5
 
6
- def perform_validation_test(resources, profile_url)
7
- skip_if resources.blank?,
8
- "No #{resource_type} resources conforming to the #{profile_url} profile were returned."
6
+ def perform_validation_test(resources,
7
+ profile_url,
8
+ skip_if_empty: true)
9
+
10
+ skip_if skip_if_empty && resources.blank?,
11
+ "No #{resource_type} resources conforming to the #{profile_url} profile were returned"
12
+
13
+ omit_if resources.blank?,
14
+ "No #{resource_type} resources provided so the #{profile_url} profile does not apply"
9
15
 
10
16
  resources.each do |resource|
11
17
  resource_is_valid?(resource: resource, profile_url: profile_url)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module USCoreTestKit
2
- VERSION = '0.2.1'
4
+ VERSION = '0.2.4'
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: us_core_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen MacVicar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-11 00:00:00.000000000 Z
11
+ date: 2022-07-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core