import 'package:flutter_test/flutter_test.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:travel_mate/models/packing_item.dart'; import 'package:travel_mate/services/packing_service.dart'; void main() { const tripId = 'trip-pack-1'; late PackingService service; setUp(() { SharedPreferences.setMockInitialValues({}); service = PackingService(); }); test('adds, toggles and deletes packing items', () async { final item = PackingItem.newItem(id: '1', label: 'Adaptateur US'); await service.addItem(tripId, item); var loaded = await service.loadItems(tripId); expect(loaded.first.isPacked, isFalse); loaded = await service.toggleItem(tripId, '1'); expect(loaded.first.isPacked, isTrue); loaded = await service.deleteItem(tripId, '1'); expect(loaded, isEmpty); }); test('suggested items react to cold and duration', () { final cold = service.suggestedItems(nights: 5, cold: true); expect(cold, contains('Veste chaude')); expect(cold, contains('Lessive/ziplock')); final warm = service.suggestedItems(nights: 2, cold: false); expect(warm, contains('Crème solaire')); expect(warm, isNot(contains('Lessive/ziplock'))); }); test('handles corrupted payload', () async { final prefs = await SharedPreferences.getInstance(); await prefs.setString('packing_$tripId', 'oops'); final items = await service.loadItems(tripId); expect(items, isEmpty); expect(prefs.getString('packing_$tripId'), isNull); }); }