scrabble-solver
Version:
Scrabble Solver 2 - Free, open-source, cross-platform, multi-language analysis tool for Scrabble, Scrabble Duel, Super Scrabble, Letter League, Crossplay, Literaki, and Kelimelik. Quickly find the top-scoring words using the given board and tiles.
76 lines (67 loc) • 1.81 kB
text/typescript
import {
closeModal,
getBoardTile,
getSettingOption,
getSettingsButton,
unregisterServiceWorkers,
visitIndex,
} from '../../support';
/*
* @see https://github.com/kamilmielnik/scrabble-solver/issues/380
*/
describe('#380 - No transliteration when pasting', () => {
beforeEach(async () => {
await unregisterServiceWorkers();
});
afterEach(() => {
cy.clearLocalStorage();
});
it('should transliterate special characters when pasting in Romanian', () => {
testTransliterationOnPaste({
language: 'Română',
word: 'abordaserăți',
transliterated: 'abordaserati',
});
});
it('should transliterate special characters (except "ñ") when pasting in Spanish', () => {
testTransliterationOnPaste({
language: 'Español',
word: 'bañó',
transliterated: 'baño',
});
});
it('should transliterate special characters when pasting in French', () => {
testTransliterationOnPaste({
language: 'Français',
word: 'pâtisserie',
transliterated: 'patisserie',
});
});
function testTransliterationOnPaste({
language,
word,
transliterated,
}: {
language: string;
word: string;
transliterated: string;
}) {
visitIndex();
getSettingsButton().realClick();
getSettingOption('Language', language).check();
closeModal();
getBoardTile(0, 0)
.focus()
.then(($input) => {
const pasteEvent = new ClipboardEvent('paste', {
clipboardData: new DataTransfer(),
bubbles: true,
});
pasteEvent.clipboardData?.setData('text/plain', word);
$input[0].dispatchEvent(pasteEvent);
});
Array.from(transliterated).forEach((value, x) => {
getBoardTile(x, 0).should('have.value', value);
});
}
});