feat(buscar): add discovery landing state, filter pills, counter, and sort
This commit is contained in:
@@ -9,6 +9,7 @@ import 'package:pluriwave/servicios/servicio_audio.dart';
|
||||
import 'package:pluriwave/servicios/servicio_dispositivo_audio.dart';
|
||||
import 'package:pluriwave/servicios/servicio_ecualizador.dart';
|
||||
import 'package:pluriwave/servicios/servicio_favoritos.dart';
|
||||
import 'package:pluriwave/servicios/servicio_grabacion_radio.dart';
|
||||
import 'package:pluriwave/servicios/servicio_radio.dart';
|
||||
|
||||
class FakeServicioAudio extends ServicioAudio {
|
||||
@@ -236,6 +237,7 @@ class FakeServicioRadio extends ServicioRadio {
|
||||
int obtenerPopularesCalls = 0;
|
||||
int obtenerTendenciasCalls = 0;
|
||||
int registrarClickCalls = 0;
|
||||
int buscarCalls = 0;
|
||||
String? ultimoUuidClick;
|
||||
|
||||
Exception _normalizarError(Object error) =>
|
||||
@@ -279,6 +281,10 @@ class FakeServicioRadio extends ServicioRadio {
|
||||
int limit = 30,
|
||||
int offset = 0,
|
||||
}) async {
|
||||
// WU6: counts calls so tests can assert a client-side re-sort does NOT
|
||||
// trigger a new network request (`station-discovery-browse` spec,
|
||||
// "Client-Side Search Sort Only").
|
||||
buscarCalls++;
|
||||
return _busqueda.skip(offset).take(limit).toList();
|
||||
}
|
||||
|
||||
@@ -573,6 +579,28 @@ class FakeServicioDispositivoAudio extends ServicioDispositivoAudio {
|
||||
}
|
||||
}
|
||||
|
||||
/// WU6: promoted from a local class in `pantalla_inicio_test.dart` to this
|
||||
/// shared helpers file, since `pantalla_buscar_test.dart` now needs the same
|
||||
/// inert stand-in — any widget test that constructs a full `EstadoRadio`
|
||||
/// must supply a `servicioGrabacion`, or the default REAL
|
||||
/// `ServicioGrabacionRadio` touches native platform channels and hangs
|
||||
/// inside `testWidgets()`.
|
||||
class FakeServicioGrabacionRadio extends ServicioGrabacionRadio {
|
||||
final _controller = StreamController<EstadoGrabacionRadio>.broadcast();
|
||||
|
||||
@override
|
||||
EstadoGrabacionRadio get estado => const EstadoGrabacionRadio.inactiva();
|
||||
|
||||
@override
|
||||
Stream<EstadoGrabacionRadio> get estadoStream => _controller.stream;
|
||||
|
||||
@override
|
||||
Future<void> inicializar() async {}
|
||||
|
||||
@override
|
||||
Future<void> dispose() => _controller.close();
|
||||
}
|
||||
|
||||
Emisora emisoraDemo({
|
||||
required String uuid,
|
||||
required String nombre,
|
||||
|
||||
Reference in New Issue
Block a user