if i have a channel test like given below, is it possible to assert that socketA client received a particular event and socketB received a particular event ?
defmodule RockPaperScissorsWeb.GameChannelTest do
use RockPaperScissorsWeb.ChannelCase
test "players get correct results" do
player_id_a = UUID.uuid4()
player_id_b = UUID.uuid4()
game_channel_id = UUID.uuid4()
{_, _, socketA} = joinGameChannel(game_channel_id, player_id_a)
{_, _, socketB} = joinGameChannel(game_channel_id, player_id_b)
push(socketA, "move", %{"player_id" => player_id_a, "move" => "r"})
push(socketB, "move", %{"player_id" => player_id_b, "move" => "r"})
# assert that socketA client received a particular event
# assert that socketB client received a particular event
end
# Helpers
defp joinGameChannel(game_channel_id, player_id) do
RockPaperScissorsWeb.Socket
|> socket(nil, %{})
|> subscribe_and_join(
RockPaperScissorsWeb.GameChannel,
"game:#{game_channel_id}",
%{"player_id" => player_id}
)
end
end