import Wordle, { CharState } from "../Wordle";
import WordPicker, { Langs } from "../WordPicker";

import WordleTestes from "./Wordle.test.json";

interface TestData {
    anwser: string;
    guesses: {
        guess: string,
        states: CharState[];
    }[];
}


test('The guesses produce the right states', () => {
    (WordleTestes as TestData[]).forEach(({ anwser, guesses }) => {
        const wordPicker = {
            getWord: () => {
                return anwser;
            },
            getWordList: () => {
                return WordPicker.getWordList(Langs.ptBr);
            }
        };
        const wordle = new Wordle(wordPicker);
        guesses.forEach(({ guess, states }) => {
            const guess_states = wordle.checkWord(guess);
            expect(guess_states).toEqual(states);
        });
    });
});
