import 'package:flutter_test/flutter_test.dart';
import 'package:meinweimar_city_guide/models/learning_unit.dart';
void main() {
test('parses multilingual learning unit and server TTS requests', () {
final unit = LearningUnit.fromJson({
'id': 966,
'slug': 'sg-coffee-order',
'course_id': 952,
'order': 13,
'level': 'A1',
'kind': 'phrase',
'title': 'Je voudrais un café.',
'phrase_de': 'Ich hätte gern einen Kaffee.',
'help': 'Je voudrais un café.',
'explanation': 'Explication française.',
'challenge': 'Défi français.',
'language': 'fr',
'resolved_language': 'fr',
'available_languages': ['de', 'en', 'nl', 'fr', 'pl', 'it', 'es', 'cs'],
'audio': {
'target_phrase': {
'text': 'Ich hätte gern einen Kaffee.',
'lang': 'de',
'variants': ['normal', 'slow'],
'requests': {
'normal': {'text': 'Ich hätte gern einen Kaffee.', 'lang': 'de', 'variant': 'normal'},
'slow': {'text': 'Ich hätte gern einen Kaffee.', 'lang': 'de', 'variant': 'slow'},
},
},
'help': {
'text': 'Je voudrais un café.',
'lang': 'fr',
'variants': ['normal'],
'request': {'text': 'Je voudrais un café.', 'lang': 'fr', 'variant': 'normal'},
},
},
});
expect(unit.courseId, '952');
expect(unit.phraseDe, 'Ich hätte gern einen Kaffee.');
expect(unit.resolvedLanguage, 'fr');
expect(unit.audio!.targetPhrase!.requestFor('slow').languageCode, 'de');
expect(unit.audio!.targetPhrase!.requestFor('slow').variant, 'slow');
expect(unit.audio!.help!.requestFor('normal').languageCode, 'fr');
});
}

