8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/julewire/core/testing/contracts/wire.rb', line 8
def assert_julewire_propagation_contract(key: Julewire::Core::Propagation::Carrier::DEFAULT_KEY)
carrier = {}
= nil
restored = nil
Julewire.with_execution(type: :contract, id: "contract-1", emit_summary: false) do
Julewire.context.add(request_id: "request-1")
Julewire.carry.add(http: { request_headers: { traceparent: contract_traceparent } })
assert_same carrier, Julewire::Core::Propagation::Carrier.inject(carrier, key: key)
= Julewire::Core::Propagation::Carrier.(carrier, key: key)
assert_equal "request-1", .dig(:context, :request_id)
assert_equal contract_traceparent, .dig(:carry, :http, :request_headers, :traceparent)
assert_equal "contract-1", .dig(:execution, :id)
Julewire::Core::Propagation::Carrier.restore(carrier, key: key) do
restored = Julewire::Core::Propagation.capture_local
end
end
assert_equal "request-1", restored.dig(:context, :request_id)
assert_equal contract_traceparent, restored.dig(:carry, :http, :request_headers, :traceparent)
assert_equal "contract-1", restored.dig(:execution, :id)
assert_oversize_carrier_clears_stale_value!(key)
end
|