feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets

This commit is contained in:
2026-10-09 15:26:58 +05:00
parent 7f91366201
commit 0b12e4583b
244 changed files with 611461 additions and 1617 deletions
+59 -1
View File
@@ -121,5 +121,63 @@ void main() {
await repo.clearHistory();
expect(repo.sessions.isEmpty, isTrue);
});
test('Custom edits: save, export, import, reset, and clear', () async {
expect(repo.customEditsCount, equals(0));
final testWord = repo.getWordBySessionNumber(100)!.word;
final originalWord = repo.getWordByName(testWord)!;
expect(originalWord.isUserEdited, isFalse);
// Save custom edit
await repo.saveCustomEdit(
testWord,
core: 'Тестовое ядро от пользователя',
oracle: 'Тестовое толкование от пользователя',
shadow: 'Тестовая тень',
asks: 'Тестовый вопрос',
step: 'Тестовый жест',
);
expect(repo.customEditsCount, equals(1));
final edited = repo.getWordByName(testWord)!;
expect(edited.isUserEdited, isTrue);
expect(edited.core, equals('Тестовое ядро от пользователя'));
expect(edited.oracle, equals('Тестовое толкование от пользователя'));
expect(edited.shadow, equals('Тестовая тень'));
expect(edited.asks, equals('Тестовый вопрос'));
expect(edited.step, equals('Тестовый жест'));
// Export json
final exportedJson = repo.exportCustomEditsJson();
expect(exportedJson.contains(testWord), isTrue);
expect(exportedJson.contains('Тестовое ядро от пользователя'), isTrue);
// Reset
await repo.resetCustomEdit(testWord);
expect(repo.customEditsCount, equals(0));
final resetWord = repo.getWordByName(testWord)!;
expect(resetWord.isUserEdited, isFalse);
expect(resetWord.core, isNot(equals('Тестовое ядро от пользователя')));
// Import back
final importedCount = await repo.importCustomEditsJson(exportedJson);
expect(importedCount, equals(1));
expect(repo.customEditsCount, equals(1));
final reimported = repo.getWordByName(testWord)!;
expect(reimported.isUserEdited, isTrue);
expect(reimported.core, equals('Тестовое ядро от пользователя'));
// Clear all
await repo.clearAllCustomEdits();
expect(repo.customEditsCount, equals(0));
expect(repo.getWordByName(testWord)!.isUserEdited, isFalse);
});
test('Word #581 вызывать has appropriate summoning / challenge emojis instead of wood/climbing', () async {
final word = repo.getWordByName('вызывать');
expect(word, isNotNull);
expect(word!.emoji, equals('📯 ⚡'));
});
});
}
}