import 'package:eatvio_app/core/theme/theme_helper.dart'; import 'package:eatvio_app/features/diets/presentation/widgets/expandable_text.dart'; import 'package:eatvio_app/generated/l10n.dart'; import 'package:flutter/material.dart'; import 'package:flutter_dotenv/flutter_dotenv.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { group('ExpandableText smoke', () { setUpAll(() async { dotenv.loadFromString(envString: 'DEV_BASE_URL=http://localhost\nBASE_URL=http://localhost'); }); Widget wrap(Widget child) { return MaterialApp( theme: ThemeHelper().themeData(), localizationsDelegates: const [ S.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, GlobalCupertinoLocalizations.delegate, ], supportedLocales: S.delegate.supportedLocales, home: Scaffold(body: child), ); } testWidgets('renders expandable text with short text', (tester) async { await tester.pumpWidget(wrap(const ExpandableText(text: 'Short text', maxLines: 5))); await tester.pump(); await tester.pump(const Duration(milliseconds: 100)); expect(find.byType(ExpandableText), findsOneWidget); expect(find.text('Short text'), findsOneWidget); }); testWidgets('renders expandable text with long text', (tester) async { const longText = 'This is a very long text that should be truncated and show an expand button when it exceeds the maximum number of lines specified in the widget.'; await tester.pumpWidget(wrap(const ExpandableText(text: longText, maxLines: 5))); await tester.pump(); await tester.pump(const Duration(milliseconds: 300)); expect(find.byType(ExpandableText), findsOneWidget); }); }); }