@@ -52,6 +52,41 @@ defmodule Ecto.Repo.SupervisorTest do
5252 :telemetry . detach ( :telemetry_test )
5353 end
5454
55+ test "emits :started telemetry event after repo process starts" do
56+ :telemetry . attach_many (
57+ :telemetry_started_test ,
58+ [ [ :ecto , :repo , :started ] ] ,
59+ & __MODULE__ . handle_event / 4 ,
60+ % { pid: self ( ) }
61+ )
62+
63+ { :ok , _pid } = Ecto.TestRepo . start_link ( name: :telemetry_started_test )
64+
65+ assert_receive { [ :ecto , :repo , :started ] , % { system_time: _ } , % { repo: Ecto.TestRepo , adapter: Ecto.TestAdapter , config: config } }
66+ assert config [ :name ] == :telemetry_started_test
67+ assert config [ :database ] == "hello"
68+
69+ :telemetry . detach ( :telemetry_started_test )
70+ end
71+
72+ test "emits :started telemetry event even when repo modifies config in init" do
73+ :telemetry . attach_many (
74+ :telemetry_started_test_init ,
75+ [ [ :ecto , :repo , :started ] ] ,
76+ & __MODULE__ . handle_event / 4 ,
77+ % { pid: self ( ) }
78+ )
79+
80+ { :ok , _pid } = Ecto.TestRepoInitModify . start_link ( name: :telemetry_started_test_init_modify )
81+
82+ assert_receive { [ :ecto , :repo , :started ] , % { system_time: _ } , % { repo: Ecto.TestRepoInitModify , adapter: Ecto.TestAdapter , config: config } }
83+ assert config [ :name ] == :telemetry_started_test_init_modify
84+ assert config [ :database ] == "hello"
85+ refute Keyword . has_key? ( config , :telemetry_prefix )
86+
87+ :telemetry . detach ( :telemetry_started_test_init )
88+ end
89+
5590 test "reads otp app configuration" do
5691 put_env ( database: "hello" )
5792 { :ok , config } = init_config ( :runtime , __MODULE__ , :ecto , [ ] )
0 commit comments