MyApp.Endpoint.broadcast(@topic, @event, @payload)
Кажется, не работает в моих контроллерах, только в каналах.
Мой контроллер
defmodule MyApp.ClientRequestController do
use MyApp, :controller
def create(conn, _) do
MyApp.Endpoint.broadcast!(@topic, @event, @payload)
conn
end
end
Проверка контроллера
defmodule MyApp.ClientRequestControllerTest do
use MyApp.ConnCase
test "dispatch event", %{conn: conn} do
assert_receive %Phoenix.Socket.Broadcast{}
end
end
Ошибка при попытке проверить полученное сообщение
No message matching %Phoenix.Socket.Broadcast{}
Process mailbox:
{#Reference<0.2732378465.3402629121.237765>,.....
Мой канал
defmodule MyApp.DashboardChannel do
use MyApp, :channel
alias MyApp.Endpoint
Endpoint.broadcast!(@topic, @event, @payload)
end
Тест Мой канал
defmodule MyApp.DashboardChannelTest do
use MyApp.ChannelCase
test "send current status when join topic successfully", %{socket: socket} do
{:ok, _, _socket} = subscribe_and_join(socket, @topic, %{})
assert_broadcast @event, @payload
end
И тест канала проходит ...
События, передаваемые с моего контроллера, должны быть доступны в окне сообщений при тестировании контроллера ... но они не ...
В окне сообщения отображаются только события, переданные с MyApp.dashboardChannel
...
Просто не знаю, что я делаю не так ...
Последние 3 дня пытался заставить это работать ... Никаких ошибок ... просто не работает, как ожидалось ...
Любая помощь? ....