Current section

Files

Jump to
concord test concord telemetry_test.exs
Raw

test/concord/telemetry_test.exs

defmodule Concord.TelemetryTest do
use ExUnit.Case, async: false
setup do
# Start test cluster
:ok = Concord.TestHelper.start_test_cluster()
on_exit(fn ->
Concord.TestHelper.stop_test_cluster()
end)
:ok
end
test "telemetry events are emitted for operations" do
test_pid = self()
:telemetry.attach(
"test-handler",
[:concord, :api, :put],
fn event, measurements, metadata, _ ->
send(test_pid, {:telemetry, event, measurements, metadata})
end,
nil
)
Concord.put("telemetry_test", "value")
assert_receive {:telemetry, [:concord, :api, :put], measurements, metadata}, 1000
assert is_integer(measurements.duration)
assert metadata.result in [:ok, :error, {:error, :cluster_not_ready}]
:telemetry.detach("test-handler")
end
end