import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:mobile_scanner/mobile_scanner.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:smoke_cess_app/providers/settings_provider.dart'; import 'package:smoke_cess_app/widgets/buttons/text_icon_button.dart'; import 'package:smoke_cess_app/widgets/scanner.dart'; import '../mock/settings_mock.dart'; void main() { mockSharedPreferences(); group('MyScanner', () { testWidgets('Scanner should start after Button is pressed', (widgetTester) async { SettingsProvider settingsProvider = SettingsProvider(); expect(settingsProvider.scanning, false); await widgetTester.pumpWidget(MaterialApp( home: Column( children: [ ChangeNotifierProvider( create: (context) => settingsProvider, child: const MyScanner()) ], ), )); final startScannerButton = find.byType(TextIconButton); final scanner = find.byType(MobileScanner); expect(startScannerButton, findsOneWidget); expect(scanner, findsNothing); await widgetTester.tap(startScannerButton); await widgetTester.pump(); expect(startScannerButton, findsNothing); expect(scanner, findsOneWidget); expect(settingsProvider.scanning, true); }); }); }