import 'package:flutter_test/flutter_test.dart'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:smartplus_delivery_app/core/api_client.dart'; import 'package:smartplus_delivery_app/core/app_theme.dart'; import 'package:smartplus_delivery_app/modelos/delivery_order.dart'; import 'package:smartplus_delivery_app/pantallas/order_detail_screen.dart'; import 'package:smartplus_delivery_app/servicios/delivery_repository.dart'; void main() { test('API client exposes the configured contract base URL', () { expect(ApiClient.baseUrl, isNotEmpty); }); testWidgets('order detail fits a small phone with long product names', ( tester, ) async { tester.view.physicalSize = const Size(360, 640); tester.view.devicePixelRatio = 1; addTearDown(tester.view.reset); final order = DeliveryOrder( id: 'small-phone-order', number: 'PD01-99', customer: 'Cliente de prueba', address: 'Jr. Marañón 900, Bagua 01721, Perú', reference: 'Frente al estadio municipal, puerta azul', total: 18.50, balanceDue: 18.50, status: OrderStatus.enRoute, phone: '999999999', items: const [ DeliveryOrderItem( name: 'Bidón de agua purificada de veinte litros retornable', quantity: 2, unitPrice: 9.25, total: 18.50, ), ], ); await tester.pumpWidget( MaterialApp( theme: AppTheme.light, home: OrderDetailScreen( order: order, repository: DeliveryRepository( client: ApiClient(client: _NoopClient()), ), ), ), ); await tester.pumpAndSettle(); expect(tester.takeException(), isNull); expect(find.text('Referencia'), findsOneWidget); expect(find.text('Productos a entregar'), findsOneWidget); }); } class _NoopClient extends http.BaseClient { @override Future send(http.BaseRequest request) async => http.StreamedResponse(const Stream.empty(), 503, request: request); }