scrabble-solver
Version:
Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.
36 lines (31 loc) • 1.22 kB
text/typescript
import { Locale } from '@scrabble-solver/types';
import fs from 'fs';
import path from 'path';
import { parse } from './parse';
const readTestFile = (filepath: string): string => {
const absoluteFilepath = path.resolve(__dirname, '__tests__', filepath);
return fs.readFileSync(absoluteFilepath, 'utf-8');
};
const tests = [
{ locale: Locale.DE_DE, word: 'hm' },
{ locale: Locale.DE_DE, word: 'ho' },
{ locale: Locale.DE_DE, word: 'kolla' },
{ locale: Locale.DE_DE, word: 'vom' },
{ locale: Locale.EN_US, word: 'awe' },
{ locale: Locale.EN_US, word: 'oe' },
{ locale: Locale.EN_US, word: 'pawn' },
{ locale: Locale.EN_US, word: 'pawnee' },
{ locale: Locale.EN_US, word: 'pean' },
{ locale: Locale.EN_US, word: 'wiz' },
{ locale: Locale.ES_ES, word: 'corma' },
{ locale: Locale.ES_ES, word: 'portero' },
{ locale: Locale.RO_RO, word: 'aciua' },
{ locale: Locale.TR_TR, word: 'lojik' },
];
describe('parse', () => {
it.each(tests)(`[$locale] "$word"`, ({ locale, word }) => {
const input = readTestFile(`input/${locale}.${word}.html`);
const expected = readTestFile(`expected/${locale}.${word}.json`);
expect(parse(locale, input)).toEqual(JSON.parse(expected));
});
});