You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

53 lines
1.6 KiB

module Main where
import Hangman
import Test.Hspec
testPuzzle :: Puzzle
testPuzzle = Puzzle "test" (take 4 $ repeat Nothing) "" 0
correctChar :: Char
correctChar = 't'
guessCorrect :: Puzzle
guessCorrect =
Puzzle "test"
[Just correctChar, Nothing, Nothing, Just correctChar]
[correctChar]
0
wrongChar :: Char
wrongChar = 'a'
guessWrong :: Puzzle
guessWrong =
Puzzle "test"
[Nothing, Nothing, Nothing, Nothing]
[wrongChar]
0
test_fillInCharacter :: IO ()
test_fillInCharacter = hspec $ do
describe "fillInCharacter" $ do
it "Wrong guess only adds to guesses" $ do
fillInCharacter testPuzzle wrongChar
== guessWrong
it "Right guess updates guesses and characters guessed so far" $ do
fillInCharacter testPuzzle correctChar
== guessCorrect
-- I feel like I don't grasp enough of the language yet
-- to propery do this. I can't compare IO Puzzle with Puzzle
-- and using <- to bind the Puzzle doesn't work yet.
-- test_handleGuess :: IO ()
-- test_handleGuess = hspec $ do
-- describe "handleGuess" $ do
-- it "Wrong guess only adds to guess" $ do
-- p <- handleGuess testPuzzle wrongChar
-- p == guessWrong
main :: IO ()
main = do
return ()
test_fillInCharacter
-- test_handleGuess