1
0
mirror of https://github.com/danbee/chess synced 2025-03-04 08:39:06 +00:00

More move tests

Specifically:

* Test that a user cannot move an opponents pieces
* Test that a user cannot move if it's not their turn
* Test that a move is reflected on the opponents view
This commit is contained in:
Daniel Barber 2018-03-01 20:16:21 -05:00
parent 846bba69e0
commit 36670245d7
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8

View File

@ -86,6 +86,68 @@ defmodule Chess.GamesTest do
|> assert_has(square_containing("f4-r3", "white.pawn")) |> assert_has(square_containing("f4-r3", "white.pawn"))
end end
test "cannot move the opponents pieces", %{session: session} do
create_user("zelda", "ganonsucks")
session
|> create_user_and_login()
|> visit("/games")
|> click(link("New game"))
|> select("game[opponent_id]", option: "zelda")
|> click(button("Create game"))
session
|> click(css("#f4-r6"))
|> refute_has(square_selected("f4-r5"))
end
test "cannot move pieces when it's the opponents turn", %{session: session} do
create_user("link", "ilovezelda")
create_user("zelda", "ganonsucks")
session
|> login("link", "ilovezelda")
|> visit("/games")
|> click(link("New game"))
|> select("game[opponent_id]", option: "zelda")
|> click(button("Create game"))
{:ok, session2} = Wallaby.start_session
session2
|> login("zelda", "ganonsucks")
|> click(link("Game with link"))
session2
|> click(css("#f4-r6"))
|> refute_has(square_selected("f4-r5"))
end
test "move is reflected on opponents screen", %{session: session} do
create_user("link", "ilovezelda")
create_user("zelda", "ganonsucks")
session
|> login("link", "ilovezelda")
|> visit("/games")
|> click(link("New game"))
|> select("game[opponent_id]", option: "zelda")
|> click(button("Create game"))
{:ok, session2} = Wallaby.start_session
session2
|> login("zelda", "ganonsucks")
|> click(link("Game with link"))
session
|> click(css("#f4-r1"))
|> click(css("#f4-r3"))
session2
|> assert_has(css(".board.black-to-move"))
|> refute_has(square_containing("f4-r1", "white.pawn"))
|> assert_has(square_containing("f4-r3", "white.pawn"))
end
defp create_user_and_login(session) do defp create_user_and_login(session) do
create_user("link", "ilovezelda") create_user("link", "ilovezelda")