import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:pluriwave/estado/estado_busqueda.dart'; import 'package:pluriwave/l10n/gen/app_localizations.dart'; import 'package:pluriwave/pantallas/pantalla_buscar.dart'; import 'package:pluriwave/widgets/tarjeta_emisora.dart'; import 'package:provider/provider.dart'; import '../helpers/fakes.dart'; /// S5-R6: the search loading state uses shimmer placeholders, not a bare /// spinner, to stay consistent with the rest of the app. class _BusquedaCargando extends EstadoBusqueda { _BusquedaCargando() : super(radio: FakeServicioRadio()); @override bool get cargando => true; } void main() { testWidgets('PantallaBuscar muestra shimmer mientras carga', (tester) async { final busqueda = _BusquedaCargando(); addTearDown(busqueda.dispose); await tester.pumpWidget( ListenableProvider.value( value: busqueda, child: MaterialApp( locale: const Locale('es'), localizationsDelegates: AppLocalizations.localizationsDelegates, supportedLocales: AppLocalizations.supportedLocales, home: const Scaffold(body: PantallaBuscar()), ), ), ); await tester.pump(); expect(find.byType(TarjetaEmisoraShimmer), findsWidgets); expect(find.byType(CircularProgressIndicator), findsNothing); }); }