floof-webchat/test/chat_web/channels/room_channel_test.exs
2022-11-26 17:27:01 +01:00

28 lines
784 B
Elixir

defmodule ChatWeb.RoomChannelTest do
use ChatWeb.ChannelCase
setup do
{:ok, _, socket} =
ChatWeb.UserSocket
|> socket("user_id", %{some: :assign})
|> subscribe_and_join(ChatWeb.RoomChannel, "room:lobby")
%{socket: socket}
end
test "ping replies with status ok", %{socket: socket} do
ref = push(socket, "ping", %{"hello" => "there"})
assert_reply ref, :ok, %{"hello" => "there"}
end
test "shout broadcasts to room:lobby", %{socket: socket} do
push(socket, "shout", %{"hello" => "all"})
assert_broadcast "shout", %{"hello" => "all"}
end
test "broadcasts are pushed to the client", %{socket: socket} do
broadcast_from!(socket, "broadcast", %{"some" => "data"})
assert_push "broadcast", %{"some" => "data"}
end
end