import 'package:flutter_test/flutter_test.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:travel_mate/models/budget_category.dart'; import 'package:travel_mate/services/budget_service.dart'; void main() { const tripId = 'trip-budget-1'; late BudgetService service; setUp(() { SharedPreferences.setMockInitialValues({}); service = BudgetService(); }); test('adds and deletes budget envelopes', () async { final cat = BudgetCategory.newCategory( id: 'food', name: 'Food', planned: 300, currency: 'EUR', ); await service.addBudget(tripId, cat); var loaded = await service.loadBudgets(tripId); expect(loaded.single.name, 'Food'); loaded = await service.deleteBudget(tripId, 'food'); expect(loaded, isEmpty); }); test('updates spent amount', () async { final cat = BudgetCategory.newCategory( id: 'transport', name: 'Transport', planned: 200, currency: 'USD', ); await service.addBudget(tripId, cat); final updated = await service.updateSpent(tripId, 'transport', 55.5); expect(updated.first.spent, 55.5); }); test('corrupted payload cleared', () async { final prefs = await SharedPreferences.getInstance(); await prefs.setString('budget_$tripId', 'oops'); final loaded = await service.loadBudgets(tripId); expect(loaded, isEmpty); expect(prefs.getString('budget_$tripId'), isNull); }); }