fixes before build
This commit is contained in:
@@ -232,4 +232,115 @@ void main() {
|
||||
|
||||
expect(find.text('Jumbo'), findsWidgets);
|
||||
});
|
||||
|
||||
testWidgets('review screen strikes through the pre-discount price', (
|
||||
tester,
|
||||
) async {
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
home: ReviewScreen(
|
||||
items: [
|
||||
LineItem(id: '1', name: 'Berries', price: 6.85, discount: -1.15),
|
||||
],
|
||||
rawText: 'Berries 8.00\nKorting -1.15',
|
||||
repository: memoryRepository(),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
expect(find.text('€ 8.00'), findsOneWidget);
|
||||
expect(find.text('€ 6.85'), findsOneWidget);
|
||||
final original = tester.widget<Text>(find.text('€ 8.00'));
|
||||
expect(original.style?.decoration, TextDecoration.lineThrough);
|
||||
});
|
||||
|
||||
testWidgets('product name is saved when leaving the screen', (tester) async {
|
||||
final repository = memoryRepository();
|
||||
await tester.runAsync(() async {
|
||||
await repository.saveShop(
|
||||
supermarket: 'Jumbo',
|
||||
shoppedAt: DateTime.now(),
|
||||
items: [LineItem(id: '1', name: 'Milk', price: 1.5)],
|
||||
);
|
||||
});
|
||||
|
||||
await tester.pumpWidget(ReceipityApp(repository: repository));
|
||||
await pumpUntilFound(tester, find.text('Overview'));
|
||||
await tester.tap(find.text('Products').last);
|
||||
await pumpUntilFound(tester, find.text('Milk'));
|
||||
await tester.tap(find.text('Milk'));
|
||||
await pumpUntilFound(tester, find.text('Name'));
|
||||
|
||||
await tester.enterText(find.byType(TextField).first, 'Oat milk');
|
||||
await tester.tap(find.byTooltip('Back'));
|
||||
await tester.runAsync(
|
||||
() => Future<void>.delayed(const Duration(milliseconds: 150)),
|
||||
);
|
||||
await tester.pump();
|
||||
expect(find.byType(TextField), findsNothing);
|
||||
expect(find.text('Oat milk'), findsOneWidget);
|
||||
expect(find.text('Milk'), findsNothing);
|
||||
});
|
||||
|
||||
testWidgets('products screen marks case-only duplicates', (tester) async {
|
||||
final repository = memoryRepository();
|
||||
await tester.runAsync(() => seedCaseConflictCatalog(repository));
|
||||
|
||||
await tester.pumpWidget(ReceipityApp(repository: repository));
|
||||
await pumpUntilFound(tester, find.text('Overview'));
|
||||
await tester.tap(find.text('Products').last);
|
||||
await pumpUntilFound(tester, find.text('1 duplicate product'));
|
||||
|
||||
expect(find.text('Broccoli'), findsOneWidget);
|
||||
expect(find.text('BROCCOLI'), findsOneWidget);
|
||||
expect(find.byTooltip('Resolve name issues'), findsWidgets);
|
||||
});
|
||||
|
||||
testWidgets('products screen marks receipt spelling variants', (
|
||||
tester,
|
||||
) async {
|
||||
final repository = memoryRepository();
|
||||
await tester.runAsync(() async {
|
||||
await repository.saveShop(
|
||||
supermarket: 'Jumbo',
|
||||
shoppedAt: DateTime(2026, 8, 1),
|
||||
items: [LineItem(id: '1', name: 'Broccoli', price: 1.5)],
|
||||
);
|
||||
await repository.saveShop(
|
||||
supermarket: 'Jumbo',
|
||||
shoppedAt: DateTime(2026, 8, 2),
|
||||
items: [LineItem(id: '2', name: 'BROCCOLI', price: 1.8)],
|
||||
);
|
||||
});
|
||||
|
||||
await tester.pumpWidget(ReceipityApp(repository: repository));
|
||||
await pumpUntilFound(tester, find.text('Overview'));
|
||||
await tester.tap(find.text('Products').last);
|
||||
await pumpUntilFound(tester, find.text('1 product, multiple spellings'));
|
||||
|
||||
expect(find.text('Broccoli'), findsOneWidget);
|
||||
expect(find.byTooltip('Resolve name issues'), findsWidgets);
|
||||
});
|
||||
|
||||
testWidgets('resolve name issues sheet shows merge and leave as is', (
|
||||
tester,
|
||||
) async {
|
||||
final repository = memoryRepository();
|
||||
await tester.runAsync(() => seedCaseConflictCatalog(repository));
|
||||
|
||||
await tester.pumpWidget(ReceipityApp(repository: repository));
|
||||
await pumpUntilFound(tester, find.text('Overview'));
|
||||
await tester.tap(find.text('Products').last);
|
||||
await pumpUntilFound(tester, find.text('1 duplicate product'));
|
||||
|
||||
await tester.tap(find.text('1 duplicate product'));
|
||||
await pumpUntilFound(tester, find.text('Resolve name issues'));
|
||||
|
||||
expect(find.text('Resolve name issues'), findsOneWidget);
|
||||
expect(find.text('Separate products to merge'), findsOneWidget);
|
||||
expect(find.text('Broccoli'), findsWidgets);
|
||||
expect(find.text('BROCCOLI'), findsWidgets);
|
||||
expect(find.text('Merge'), findsOneWidget);
|
||||
expect(find.text('Leave as is'), findsOneWidget);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user