volume_card_test.dart 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import 'package:cardash_launcher/core/theme/app_theme.dart';
  2. import 'package:cardash_launcher/data/models/system_status.dart';
  3. import 'package:cardash_launcher/features/home/widgets/volume_card.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:flutter_test/flutter_test.dart';
  6. void main() {
  7. testWidgets('the ring switches between play and pause', (tester) async {
  8. var playing = false;
  9. var taps = 0;
  10. await tester.pumpWidget(
  11. MaterialApp(
  12. theme: AppTheme.dark(),
  13. home: Scaffold(
  14. body: StatefulBuilder(
  15. builder: (context, setState) {
  16. return VolumeCard(
  17. volume: const VolumeInfo(index: 8, max: 15),
  18. onSetVolume: (_) {},
  19. onToggleMute: () {},
  20. isMusicPlaying: playing,
  21. onPlayPause: () {
  22. taps++;
  23. setState(() => playing = !playing);
  24. },
  25. );
  26. },
  27. ),
  28. ),
  29. ),
  30. );
  31. expect(find.byIcon(Icons.play_arrow_rounded), findsOneWidget);
  32. expect(find.byIcon(Icons.pause_rounded), findsNothing);
  33. await tester.tap(find.byIcon(Icons.play_arrow_rounded));
  34. await tester.pump();
  35. expect(taps, 1);
  36. expect(find.byIcon(Icons.pause_rounded), findsOneWidget);
  37. expect(find.byIcon(Icons.play_arrow_rounded), findsNothing);
  38. });
  39. }