Files
leaf_widgets/example/test/widget_test.dart
T

40 lines
1.6 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:example/main.dart';
import 'package:leaf_widgets/leaf_widgets.dart';
void main() {
testWidgets('gallery builds and shows all sections', (tester) async {
await tester.pumpWidget(const LeafWidgetsGalleryApp());
expect(find.text('leaf_widgets gallery'), findsOneWidget);
expect(find.byType(AnimatedStar), findsNWidgets(2));
expect(find.byType(AnimatedFavoriteButton), findsNWidgets(2));
expect(find.byType(LeafPopover), findsOneWidget);
expect(find.byType(LeafContextMenu), findsOneWidget);
expect(find.byType(LeafImage), findsOneWidget);
});
testWidgets('LeafViewer demo opens and closes', (tester) async {
await tester.pumpWidget(const LeafWidgetsGalleryApp());
// The gallery has perpetual animations, so pumpAndSettle can never settle.
await tester.scrollUntilVisible(find.text('Open 3-image viewer'), 200);
await tester.ensureVisible(find.text('Open 3-image viewer'));
await tester.pump(const Duration(milliseconds: 100));
await tester.tap(find.text('Open 3-image viewer'));
await tester.pump();
await tester.pump(const Duration(milliseconds: 400)); // route transition
await tester.pump(); // let image loads fail while the widgets are alive
expect(find.byType(LeafViewer), findsOneWidget);
expect(find.byType(LeafZoomable), findsWidgets);
await tester.tap(find.byIcon(Icons.close));
await tester.pump();
await tester.pump(const Duration(milliseconds: 600)); // route pop
expect(find.byType(LeafViewer), findsNothing);
});
}