import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:receipity/main.dart'; import 'package:receipity/models/line_item.dart'; import 'package:receipity/review_screen.dart'; import 'package:receipity/services/product_repository.dart'; void main() { testWidgets('scan screen shows capture actions', (tester) async { await tester.pumpWidget(ReceipityApp()); expect(find.text('Receipity'), findsOneWidget); expect(find.text('Take photo'), findsOneWidget); expect(find.text('Pick from gallery'), findsOneWidget); expect(find.text('Use sample receipt'), findsOneWidget); expect( find.textContaining('Take a photo of a shopping receipt'), findsOneWidget, ); }); testWidgets('review screen lists items and can delete one', (tester) async { await tester.pumpWidget( MaterialApp( home: ReviewScreen( items: [ LineItem(id: '1', name: 'Milk', price: 1.5), LineItem(id: '2', name: 'Bread', price: 2), ], rawText: 'Milk 1.50\nBread 2.00', repository: ProductRepository(), ), ), ); expect(find.text('Milk'), findsOneWidget); expect(find.text('Bread'), findsOneWidget); expect(find.text('Add item'), findsOneWidget); expect(find.text('Confirm'), findsOneWidget); await tester.drag(find.text('Milk'), const Offset(-500, 0)); await tester.pumpAndSettle(); expect(find.text('Milk'), findsNothing); expect(find.text('Bread'), findsOneWidget); }); }