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:
parent
846bba69e0
commit
36670245d7
@ -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")
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user