// This is a basic Flutter widget test. // // To perform an interaction with a widget in your test, use the WidgetTester // utility in the flutter_test package. For example, you can send tap and scroll // gestures. You can also use WidgetTester to find child widgets in the widget // tree, read text, and verify that the values of widget properties are correct. import 'package:uvok_epaper_badge/control/mock_scanner_controller.dart'; import 'package:uvok_epaper_badge/control/scanner_controller.dart'; import 'package:uvok_epaper_badge/widgets/badge_app.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('Ensure button scans', (WidgetTester tester) async { // Build our app and trigger a frame. MockScannerController msc = MockScannerController(); final events = []; final sub = msc.statusStream.listen(events.add); await tester.pumpWidget(BadgeApp(selectedScanner: msc)); await tester.pumpAndSettle(); final scanButton = find.textContaining("scan"); expect(scanButton, findsOneWidget); await tester.tap(scanButton); await tester.pump(Duration(seconds: 5)); expect(events[0], ScanStatus.idle); expect(events[1], ScanStatus.scanning); expect(events[2], ScanStatus.finished); await msc.stopScan(); msc.dispose(); // sub.cancel(); // debugPrint("The test is nearly finished"); // await tester.pump(Duration(seconds: 2)); // debugPrint("The test is finished"); }); }