import 'package:flutter_test/flutter_test.dart'; import 'package:smartplus_delivery_app/modelos/delivery_order.dart'; void main() { test('delivery order item reads presentation metadata from API contract', () { final item = DeliveryOrderItem.fromJson({ 'item_id': 10, 'item_unit_type_id': 4, 'presentation': {'description': 'Recarga 20 litros', 'quantity_unit': 1}, 'name': 'Agua', 'quantity': 2, 'unit_price': 7, 'total': 14, }); expect(item.presentationId, 4); expect(item.presentationDescription, 'Recarga 20 litros'); expect(item.presentationFactor, 1); }); test('delivery order exposes route contact, totals and delivery items', () { final order = DeliveryOrder.fromJson({ 'id': 42, 'number': 'PD01-42', 'customer': {'name': 'Cliente Demo', 'phone': '916050559'}, 'address': 'Jr. Marañón 900, Bagua', 'reference': 'Frente al estadio', 'latitude': -5.6369, 'longitude': -78.5390, 'total': 20, 'delivery_total': 18.5, 'final_total': 17.5, 'adjustment_status': 'approved', 'payment_status': 'unpaid', 'balance_due': 18.5, 'delivery_status': 'en_route', 'items': [ { 'name': 'Agua 20 litros', 'quantity': 2, 'unit_price': 9.25, 'total': 18.5, 'presentation_description': 'Recarga estandar', 'presentation_factor': 1, }, ], }); expect(order.phone, '916050559'); expect(order.address, contains('Marañón')); expect(order.total, 17.5); expect(order.adjustmentStatus, 'approved'); expect(order.balanceDue, 18.5); expect(order.items, hasLength(1)); expect(order.items.single.quantity, 2); expect(order.items.single.presentationDescription, 'Recarga estandar'); }); }