Module: Julewire::Core::Testing::Contracts::Runtime

Included in:
Julewire::Core::Testing::Contracts
Defined in:
lib/julewire/core/testing/contracts/runtime.rb

Instance Method Summary collapse

Instance Method Details

#assert_julewire_execution_boundary_contract(**options) ⇒ Object



12
13
14
# File 'lib/julewire/core/testing/contracts/runtime.rb', line 12

def assert_julewire_execution_boundary_contract(**options)
  run_julewire_execution_boundary_contract(options)
end

#assert_julewire_failure_containment_contract(configure:, destination_name: :default, emit: nil) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/julewire/core/testing/contracts/runtime.rb', line 16

def assert_julewire_failure_containment_contract(configure:, destination_name: :default, emit: nil)
  Julewire.configure(&configure)

  assert_nil((emit || default_failure_contract_emit).call)

  health = Julewire.health
  destination_health = health.dig(:pipeline, :destinations, destination_name.to_sym)

  assert_equal :degraded, health.fetch(:status)
  assert_kind_of Hash, destination_health

  [health, destination_health]
end

#assert_julewire_record_source_contract(records:, event:, source:, **options) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/julewire/core/testing/contracts/runtime.rb', line 30

def assert_julewire_record_source_contract(
  records:,
  event:,
  source:,
  **options
)
  record = find_contract_record(records, options.fetch(:event_path, %w[event]), event)

  assert_equal source.to_s, fetch_contract_path(record, options.fetch(:source_path, %w[source])).to_s
  assert_contract_optional_source_field(record, options, :logger)
  assert_contract_optional_source_field(record, options, :kind)

  record
end

#assert_julewire_runtime_integration_contract(**options) ⇒ Object



8
9
10
# File 'lib/julewire/core/testing/contracts/runtime.rb', line 8

def assert_julewire_runtime_integration_contract(**options)
  run_julewire_runtime_contract(options)
end