File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -469,7 +469,14 @@ defmodule Phoenix.Endpoint do
469469 end
470470
471471 defp pubsub_server! do
472- config ( :pubsub_server ) ||
472+ server =
473+ try do
474+ config ( :pubsub_server )
475+ rescue
476+ ArgumentError -> Application . get_env ( @ otp_app , __MODULE__ ) [ :pubsub_server ]
477+ end
478+
479+ server ||
473480 raise ArgumentError , "no :pubsub_server configured for #{ inspect ( __MODULE__ ) } "
474481 end
475482 end
Original file line number Diff line number Diff line change @@ -332,6 +332,21 @@ defmodule Phoenix.Endpoint.EndpointTest do
332332 refute_received % Phoenix.Socket.Broadcast { }
333333 end
334334
335+ test "pubsub uses the application environment when the endpoint is not started" do
336+ defmodule PubSubEnvEndpoint do
337+ use Phoenix.Endpoint , otp_app: :phoenix
338+ end
339+
340+ Application . put_env ( :phoenix , PubSubEnvEndpoint , pubsub_server: :endpoint_pub )
341+ PubSubEnvEndpoint . subscribe ( "envtopic" )
342+ PubSubEnvEndpoint . broadcast ( "envtopic" , "event1" , % { key: :val } )
343+ assert_receive % Phoenix.Socket.Broadcast { event: "event1" , topic: "envtopic" }
344+ after
345+ Application . delete_env ( :phoenix , __MODULE__ . PubSubEnvEndpoint )
346+ :code . purge ( __MODULE__ . PubSubEnvEndpoint )
347+ :code . delete ( __MODULE__ . PubSubEnvEndpoint )
348+ end
349+
335350 test "loads cache manifest from specified application" do
336351 config =
337352 put_in (
You can’t perform that action at this time.
0 commit comments