feat: complete academic symbol lexicon heal, 2-column Cooper extraction, and updated assets
This commit is contained in:
@@ -19,6 +19,16 @@ void main() {
|
||||
expect(InterpreterPersona.byId('nope').id, InterpreterPersona.clear.id);
|
||||
});
|
||||
|
||||
test('roster includes warhammer ork shaman and aeldari farseer', () {
|
||||
expect(InterpreterPersona.orc.title, 'Орк-шаман');
|
||||
expect(InterpreterPersona.orc.systemPrompt.toLowerCase(), contains('вааагх'));
|
||||
expect(InterpreterPersona.aeldari.title, 'Всевидящий аэльдари');
|
||||
expect(
|
||||
InterpreterPersona.all.map((p) => p.id),
|
||||
containsAll(['orc', 'aeldari', 'techpriest']),
|
||||
);
|
||||
});
|
||||
|
||||
test('settings persist the selected interpreter voice', () async {
|
||||
await SettingsRepository().setPersonaId(InterpreterPersona.orc.id);
|
||||
expect(SettingsRepository().persona.id, InterpreterPersona.orc.id);
|
||||
@@ -50,6 +60,28 @@ void main() {
|
||||
expect(messages.last.content, contains('проверяемый шаг'));
|
||||
expect(messages.last.content, contains('ОГОНЬ'));
|
||||
expect(messages.last.content, contains('Стоит ли уходить?'));
|
||||
expect(messages.last.content, contains('Закон знака побеждает голос'));
|
||||
expect(messages.first.content.toLowerCase(), isNot(contains('голос самой вечности')));
|
||||
});
|
||||
|
||||
test('empty canon is marked empty and aeldari voice does not invent a closed path', () async {
|
||||
await SettingsRepository().setPersonaId(InterpreterPersona.aeldari.id);
|
||||
final messages = AiOracleService().buildInterpretationMessages(
|
||||
question: '',
|
||||
words: const [
|
||||
SessionWord(
|
||||
word: 'ухо',
|
||||
sessionNumber: 306,
|
||||
partOfSpeech: 'существительное',
|
||||
category: 'Образ / Архетип',
|
||||
symbolicMeaning:
|
||||
'Сакральный символ («ухо»): архетипический образ в поле судьбы.',
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
expect(messages.last.content, contains('КАНОН ПУСТ'));
|
||||
expect(messages.last.content, contains('УХО'));
|
||||
expect(messages.last.content.toLowerCase(), isNot(contains('тропа уже почти закрыта')));
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user