Skip to content

Commit ed80193

Browse files
committed
review
1 parent ff08395 commit ed80193

3 files changed

Lines changed: 26 additions & 25 deletions

File tree

frontend/src/ts/test/test-logic.ts

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -511,17 +511,16 @@ async function init(): Promise<boolean> {
511511
let wordsHaveNumbers = false;
512512
let wordsHaveTab = false;
513513
let wordsHaveNewline = false;
514+
let wordsKoreanStatus = false;
514515
let allLigatures: boolean | undefined = undefined;
515516
let generatedWords: TestWords.Word[] = [];
516-
let generatedWordsText: string[] = [];
517-
let generatedSectionIndexes: number[] = [];
518517
try {
519518
const gen = await WordsGenerator.generateWords(language);
520519
generatedWords = gen.words;
521-
generatedWordsText = generatedWords.map((w) => w.text);
522520
wordsHaveNumbers = gen.hasNumbers;
523521
wordsHaveTab = gen.hasTab;
524522
wordsHaveNewline = gen.hasNewline;
523+
wordsKoreanStatus = gen.koreanStatus;
525524

526525
({ allLigatures } = gen);
527526
} catch (e) {
@@ -549,20 +548,10 @@ async function init(): Promise<boolean> {
549548
TestWords.words.haveNumbers = wordsHaveNumbers;
550549
TestWords.words.haveNewlines = wordsHaveNewline;
551550
TestWords.words.haveTabs = wordsHaveTab;
551+
TestWords.words.koreanStatus = wordsKoreanStatus;
552552
setWordsHaveTab(wordsHaveTab);
553553
setWordsHaveNewline(wordsHaveNewline);
554554

555-
if (
556-
generatedWordsText
557-
.join()
558-
.normalize()
559-
.match(
560-
/[\uac00-\ud7af]|[\u1100-\u11ff]|[\u3130-\u318f]|[\ua960-\ua97f]|[\ud7b0-\ud7ff]/g,
561-
)
562-
) {
563-
TestWords.words.koreanStatus = true;
564-
}
565-
566555
TestWords.words.push(generatedWords);
567556

568557
if (Config.keymapMode === "next" && Config.mode !== "zen") {
@@ -575,11 +564,7 @@ async function init(): Promise<boolean> {
575564
Funbox.toggleScript(TestWords.words.getCurrentText());
576565
TestUI.setLigatures(allLigatures ?? language.ligatures ?? false);
577566

578-
console.debug("Test initialized with words", generatedWordsText);
579-
console.debug(
580-
"Test initialized with section indexes",
581-
generatedSectionIndexes,
582-
);
567+
console.debug("Test initialized with words", generatedWords);
583568
return true;
584569
}
585570

frontend/src/ts/test/test-ui.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -370,10 +370,10 @@ async function updateHintsPosition(): Promise<void> {
370370
await joinOverlappingHints(hintIndices, letterElements, wordHintsElements);
371371
}
372372
}
373-
373+
/*
374374
type RequireOnly<T, K extends keyof T> = Required<Pick<T, K>> &
375-
Partial<Omit<T, K>>;
376-
type WordTextWithDirection = RequireOnly<TestWords.Word, "text" | "direction">;
375+
Partial<Omit<T, K>>;*/
376+
type WordTextWithDirection = Pick<TestWords.Word, "text" | "direction">;
377377

378378
function buildWordHTML(word: WordTextWithDirection, wordIndex: number): string {
379379
let newlineafter = false;

frontend/src/ts/test/words-generator.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,9 @@ async function getQuoteWordList(
593593
return TestWords.currentQuote.textSplit;
594594
}
595595

596+
const koreanRegex =
597+
/[\u1100-\u11ff\u3130-\u318f\ua960-\ua97f\uac00-\ud7af\ud7b0-\ud7ff]/;
598+
596599
let currentWordset: Wordset | null = null;
597600
let currentLanguage: LanguageObject | null = null;
598601
let isCurrentlyUsingFunboxSection = false;
@@ -602,6 +605,7 @@ type GenerateWordsReturn = {
602605
hasTab: boolean;
603606
hasNewline: boolean;
604607
hasNumbers: boolean;
608+
koreanStatus: boolean;
605609
allRightToLeft?: boolean;
606610
allLigatures?: boolean;
607611
};
@@ -625,6 +629,7 @@ export async function generateWords(
625629
hasTab: false,
626630
hasNewline: false,
627631
hasNumbers: false,
632+
koreanStatus: false,
628633
allRightToLeft: language.rightToLeft,
629634
allLigatures: language.ligatures ?? false,
630635
};
@@ -720,9 +725,20 @@ export async function generateWords(
720725
throw new WordGenError("Random quote is null");
721726
}
722727

723-
ret.hasTab = currentWordset.words.some((w) => w.includes("\t"));
724-
ret.hasNewline = currentWordset.words.some((w) => w.includes("\n"));
725-
ret.hasNumbers = currentWordset.words.some((w) => /\d/g.test(w));
728+
// we need to test both because ret.words has only first 100 words
729+
// and currentWordset.words may be changed inside getNextWord() by funboxes
730+
ret.hasTab =
731+
ret.words.some((w) => w.text.includes("\t")) ||
732+
currentWordset.words.some((w) => w.includes("\t"));
733+
ret.hasNewline =
734+
ret.words.some((w) => w.text.includes("\n")) ||
735+
currentWordset.words.some((w) => w.includes("\n"));
736+
ret.hasNumbers =
737+
ret.words.some((w) => /\d/g.test(w.text)) ||
738+
currentWordset.words.some((w) => /\d/g.test(w));
739+
ret.koreanStatus =
740+
ret.words.some((w) => koreanRegex.test(w.text.normalize())) ||
741+
currentWordset.words.some((w) => koreanRegex.test(w.normalize()));
726742

727743
sectionHistory = []; //free up a bit of memory? is that even a thing?
728744
return ret;

0 commit comments

Comments
 (0)