feat(recording): add safety limits and adaptive headers
This commit is contained in:
@@ -6,6 +6,7 @@ import 'package:http/http.dart' as http;
|
||||
import 'package:http/testing.dart';
|
||||
import 'package:pluriwave/modelos/emisora.dart';
|
||||
import 'package:pluriwave/servicios/servicio_grabacion_radio.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
void main() {
|
||||
group('ServicioGrabacionRadio', () {
|
||||
@@ -76,6 +77,35 @@ void main() {
|
||||
await controller.close();
|
||||
await servicio.dispose();
|
||||
});
|
||||
|
||||
test('se detiene automáticamente al alcanzar el tamaño máximo', () async {
|
||||
SharedPreferences.setMockInitialValues({});
|
||||
final dir = await Directory.systemTemp.createTemp('pluriwave-rec-max-');
|
||||
final controller = StreamController<List<int>>();
|
||||
final servicio = ServicioGrabacionRadio(
|
||||
cliente: _StreamClient(controller.stream),
|
||||
resolverDirectorioBase: () async => dir,
|
||||
);
|
||||
|
||||
await servicio.inicializar();
|
||||
await servicio.guardarMaxBytes(3);
|
||||
await servicio.iniciar(
|
||||
const Emisora(
|
||||
uuid: 'r3',
|
||||
nombre: 'Radio Corta',
|
||||
url: 'https://stream.example/short',
|
||||
codec: 'mp3',
|
||||
),
|
||||
);
|
||||
controller.add([1, 2, 3]);
|
||||
await Future<void>.delayed(Duration.zero);
|
||||
await Future<void>.delayed(const Duration(milliseconds: 20));
|
||||
|
||||
expect(servicio.estado.tipo, EstadoGrabacionRadioTipo.inactiva);
|
||||
await controller.close();
|
||||
await servicio.dispose();
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user