import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:korken_mosaic/main.dart'; void main() { testWidgets('stepper blocks forward navigation without image and shows hint', (WidgetTester tester) async { await tester.pumpWidget(const KorkenMosaicApp()); expect(find.text('1) Bild'), findsOneWidget); expect(find.text('2) Größe'), findsOneWidget); expect(find.text('3) Farben'), findsOneWidget); expect(find.text('4) Ergebnis'), findsOneWidget); await tester.tap(find.text('Weiter')); await tester.pump(); // Stays on step 1 because no source image is available yet. expect(find.text('Import target image'), findsOneWidget); expect(find.text('Bitte zuerst ein Bild auswählen.'), findsOneWidget); }); testWidgets('generate actions are disabled without image', (WidgetTester tester) async { await tester.pumpWidget(const KorkenMosaicApp()); final fab = tester.widget( find.byType(FloatingActionButton), ); expect(fab.onPressed, isNull); // Result-step action is not reachable before image selection. expect(find.byKey(const Key('generate-btn')), findsNothing); }); }