import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:provider/provider.dart'; import 'package:smoke_cess_app/providers/audio_provider.dart'; import 'package:smoke_cess_app/widgets/buttons/mute_button.dart'; void main() { group('MuteButton', () { testWidgets('should handle mute logic', (WidgetTester tester) async { AudioProvider audioProvider = AudioProvider(); await tester.pumpWidget( MaterialApp( home: Scaffold( body: ChangeNotifierProvider( create: (context) => audioProvider, child: const MuteButton()))), ); final button = find.byType(IconButton); final mutedIcon = find.byIcon(Icons.volume_off_outlined); final unMutedIcon = find.byIcon(Icons.volume_up_outlined); expect(audioProvider.isMuted, false); expect(button, findsOneWidget); expect(mutedIcon, findsNothing); expect(unMutedIcon, findsOneWidget); await tester.tap(unMutedIcon); await tester.pump(); expect(audioProvider.isMuted, true); expect(mutedIcon, findsOneWidget); expect(unMutedIcon, findsNothing); }); }); }