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

40 lines
982 B
Elixir

defmodule Chess.MovesTest do
use Chess.ModelCase
alias Chess.Moves
test "white pawn can move forward one or two spaces" do
moves = Moves.available(board(), {4, 1})
expected_moves = [{4, 2}, {4, 3}]
assert moves == expected_moves
end
test "black pawn can move forward one or two spaces" do
moves = Moves.available(board(), {4, 6})
expected_moves = [{4, 5}, {4, 4}]
assert moves == expected_moves
end
test "white pawn not on starting square can move forward one space" do
board = %{ "4,2" => %{type: :pawn, colour: :white} }
moves = Moves.available(board, {4, 2})
expected_moves = [{4, 3}]
assert moves == expected_moves
end
test "black pawn not on starting square can move forward one space" do
board = %{ "4,5" => %{type: :pawn, colour: :black} }
moves = Moves.available(board, {4, 5})
expected_moves = [{4, 4}]
assert moves == expected_moves
end
def board do
Chess.Board.default
end
end