From 167f83e6fbfe1576b4e6392a4915294075a7a6fc Mon Sep 17 00:00:00 2001 From: uvok Date: Mon, 4 May 2026 20:16:05 +0200 Subject: Add widget test --- test/scanning_widget_test.dart | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 test/scanning_widget_test.dart (limited to 'test/scanning_widget_test.dart') diff --git a/test/scanning_widget_test.dart b/test/scanning_widget_test.dart new file mode 100644 index 0000000..987dc59 --- /dev/null +++ b/test/scanning_widget_test.dart @@ -0,0 +1,41 @@ +// 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:flutter/widgets.dart'; +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"); + }); +} -- cgit v1.2.3