1
0
mirror of https://github.com/danbee/chess synced 2025-03-04 08:39:06 +00:00
chess/test/chess_web/channels/game_channel_test.exs
2023-02-04 21:35:56 -06:00

48 lines
1.1 KiB
Elixir

defmodule ChessWeb.GameChannelTest do
use ChessWeb.ChannelCase
alias ChessWeb.UserSocket
import Chess.Factory
# import Chess.AuthenticationHelpers
test "assigns game_id to the socket after join" do
user = insert(:user)
game =
insert(:game, %{
user_id: user.id,
opponent_id: insert(:opponent).id
})
token = Phoenix.Token.sign(@endpoint, "game socket", user.id)
{:ok, socket} = connect(UserSocket, %{"token" => token})
{:ok, _, socket} = subscribe_and_join(socket, "game:#{game.id}", %{})
assert socket.assigns.game_id == Integer.to_string(game.id)
end
test "returns the game state after join" do
user = insert(:user)
opponent = insert(:opponent, %{name: "Daruk"})
game =
insert(:game, %{
user_id: user.id,
opponent_id: opponent.id
})
token = Phoenix.Token.sign(@endpoint, "game socket", user.id)
{:ok, socket} = connect(UserSocket, %{"token" => token})
{:ok, _, _} = subscribe_and_join(socket, "game:#{game.id}", %{})
assert_push("game:update", %{
player: "white",
opponent: "Daruk",
turn: "white"
})
end
end