36 lines
1.2 KiB
Dart
36 lines
1.2 KiB
Dart
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<FloatingActionButton>(
|
|
find.byType(FloatingActionButton),
|
|
);
|
|
expect(fab.onPressed, isNull);
|
|
|
|
// Result-step action is not reachable before image selection.
|
|
expect(find.byKey(const Key('generate-btn')), findsNothing);
|
|
});
|
|
}
|