fix(player): stabilize first playback and refresh design
This commit is contained in:
@@ -4,6 +4,7 @@ import 'dart:io';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:pluriwave/estado/estado_radio.dart';
|
||||
import 'package:pluriwave/modelos/preset_ecualizador.dart';
|
||||
import 'package:pluriwave/servicios/servicio_audio.dart';
|
||||
|
||||
import '../helpers/fakes.dart';
|
||||
|
||||
@@ -172,6 +173,49 @@ void main() {
|
||||
expect(audio.presetsAplicados.last, principal);
|
||||
});
|
||||
|
||||
|
||||
|
||||
test('notifica cambios de estado de audio para mostrar reproductor al primer play', () async {
|
||||
final audio = FakeServicioAudio();
|
||||
final emisora = emisoraDemo(uuid: 'play-1', nombre: 'Primera');
|
||||
final estado = EstadoRadio(
|
||||
audio: audio,
|
||||
favoritos: FakeServicioFavoritos(),
|
||||
radio: FakeServicioRadio(populares: [emisora]),
|
||||
servicioEcualizador: FakeServicioEcualizador(),
|
||||
resolverArchivoCustom: _archivoCustomVacio,
|
||||
iniciarAutomaticamente: false,
|
||||
);
|
||||
var notificaciones = 0;
|
||||
estado.addListener(() => notificaciones++);
|
||||
|
||||
await estado.inicializar();
|
||||
final antes = notificaciones;
|
||||
audio.emitirEstado(EstadoReproduccion.cargando);
|
||||
await Future<void>.delayed(Duration.zero);
|
||||
|
||||
expect(notificaciones, greaterThan(antes));
|
||||
});
|
||||
|
||||
test('reproducir la misma emisora mientras suena no reinicia el stream', () async {
|
||||
final audio = FakeServicioAudio();
|
||||
final emisora = emisoraDemo(uuid: 'same-1', nombre: 'Misma');
|
||||
final estado = EstadoRadio(
|
||||
audio: audio,
|
||||
favoritos: FakeServicioFavoritos(),
|
||||
radio: FakeServicioRadio(populares: [emisora]),
|
||||
servicioEcualizador: FakeServicioEcualizador(),
|
||||
resolverArchivoCustom: _archivoCustomVacio,
|
||||
iniciarAutomaticamente: false,
|
||||
);
|
||||
|
||||
await estado.inicializar();
|
||||
await estado.reproducir(emisora);
|
||||
await estado.reproducir(emisora);
|
||||
|
||||
expect(audio.emisorasReproducidas, hasLength(1));
|
||||
});
|
||||
|
||||
test('reordenar favoritos reindexa de forma determinística', () async {
|
||||
final favoritos = FakeServicioFavoritos();
|
||||
await favoritos.agregar(emisoraDemo(uuid: 'a', nombre: 'A'));
|
||||
|
||||
Reference in New Issue
Block a user