Exemple #1
0
func TestGuessALetter(t *testing.T) {
	expect := goexpect.New(t)

	game := models.Game{}.New()

	// Make a correct guess

	existingLetter := string(game.Word[0])
	game.GuessALetter(existingLetter)

	expect(game.TriesLeft).ToBe(11)
	expect(strings.Contains(game.LettersRemaining, existingLetter)).ToBe(false)

	// Incorrect guess

	game.GuessALetter(existingLetter)
	expect(game.TriesLeft).ToBe(10)

	// Failed game

	loopUntil := game.TriesLeft
	for i := 0; i < loopUntil; i++ {
		game.GuessALetter(existingLetter)
	}
	expect(game.TriesLeft).ToBe(0)
	expect(game.Status).ToBe(models.GameStatus.Failed)

	// Success game

	game = models.Game{}.New()

	for i, _ := range game.Word {
		game.GuessALetter(string(game.Word[i]))
	}
	expect(game.Status).ToBe(models.GameStatus.Success)
}