45 lines
1.8 KiB
Dart
45 lines
1.8 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:words999/models/history_entry_model.dart';
|
|
import 'package:words999/services/words_repository.dart';
|
|
import 'package:words999/services/traditions_repository.dart';
|
|
import 'package:words999/services/lenormand_pairs_repository.dart';
|
|
import 'package:words999/services/oracle_master_prompt_generator.dart';
|
|
|
|
void main() {
|
|
setUpAll(() async {
|
|
TestWidgetsFlutterBinding.ensureInitialized();
|
|
await WordsRepository().init();
|
|
await TraditionsRepository().init();
|
|
await LenormandPairsRepository().init();
|
|
});
|
|
|
|
test('Generates complete high-caliber Master Prompt for OracleSession', () {
|
|
final repo = WordsRepository();
|
|
final w1 = repo.allWords[0];
|
|
final w2 = repo.allWords[1];
|
|
final w3 = repo.allWords[2];
|
|
|
|
final session = OracleSession(
|
|
id: 'test_session_1',
|
|
timestamp: DateTime.now(),
|
|
question: 'Какой следующий шаг в работе?',
|
|
wordsCount: 3,
|
|
words: [
|
|
SessionWord.fromWordItem(w1, positionTitle: 'Исток'),
|
|
SessionWord.fromWordItem(w2, positionTitle: 'Кризис'),
|
|
SessionWord.fromWordItem(w3, positionTitle: 'Исход'),
|
|
],
|
|
);
|
|
|
|
final prompt = OracleMasterPromptGenerator.generateForSession(session);
|
|
expect(prompt.isNotEmpty, true);
|
|
expect(prompt.contains('СВЯЩЕННЫЙ РАСКЛАД КЛЕРОМАНТИИ'), true);
|
|
expect(prompt.contains('Какой следующий шаг в работе?'), true);
|
|
expect(prompt.contains(w1.word.toUpperCase()), true);
|
|
expect(prompt.contains(w2.word.toUpperCase()), true);
|
|
expect(prompt.contains(w3.word.toUpperCase()), true);
|
|
expect(prompt.contains('Энергетический баланс цепи'), true);
|
|
expect(prompt.contains('ТРЕБОВАНИЯ К ТВОЕМУ ОТВЕТУ'), true);
|
|
});
|
|
}
|