v2.54.1 — Queue zeigt echte Wiedergabe-Reihenfolge (inkl. Shuffle), aktuelles Lied markiert
This commit is contained in:
@@ -1,12 +1,64 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:melo_app/models/song.dart';
|
||||
import 'package:melo_app/screens/login_screen.dart';
|
||||
import 'package:melo_app/services/player_service.dart';
|
||||
import 'package:melo_app/widgets/warteschlange_sheet.dart';
|
||||
|
||||
Song _song(int id, String titel) => Song(
|
||||
id: id,
|
||||
titel: titel,
|
||||
kuenstler: 'Künstler $id',
|
||||
dauerSekunden: 100,
|
||||
dateiPfad: '',
|
||||
);
|
||||
|
||||
void main() {
|
||||
setUp(() {
|
||||
// PlayerService ist ein Singleton — Zustand vor jedem Test zurücksetzen
|
||||
final p = PlayerService();
|
||||
p.setZufallsmodus(false);
|
||||
p.setWiederholmodus(Wiederholmodus.aus);
|
||||
p.cancelSleepTimer();
|
||||
p.setWarteschlange([]);
|
||||
});
|
||||
|
||||
testWidgets('LoginScreen zeigt Anmelde-Felder', (WidgetTester tester) async {
|
||||
await tester.pumpWidget(const MaterialApp(home: LoginScreen()));
|
||||
await tester.pumpAndSettle();
|
||||
// Prüft dass was gerendert wird (kein Crash)
|
||||
expect(find.byType(TextField), findsWidgets);
|
||||
});
|
||||
|
||||
testWidgets('WarteschlangeSheet zeigt echte Wiedergabe-Reihenfolge',
|
||||
(WidgetTester tester) async {
|
||||
final p = PlayerService();
|
||||
p.setWarteschlange(
|
||||
[_song(1, 'Aktuell'), _song(2, 'Naechster'), _song(3, 'Danach')],
|
||||
startIndex: 1);
|
||||
await tester.pumpWidget(
|
||||
const MaterialApp(home: Scaffold(body: WarteschlangeSheet())));
|
||||
await tester.pump();
|
||||
|
||||
// Aktueller Song oben, deutlich markiert (▶ + „Jetzt spielt"-Chip)
|
||||
expect(find.text('Jetzt spielt'), findsOneWidget);
|
||||
expect(find.byIcon(Icons.play_arrow), findsOneWidget);
|
||||
// Echte Reihenfolge: aktueller Song zuerst, dann die nächsten Lieder
|
||||
expect(find.text('Naechster'), findsOneWidget);
|
||||
expect(find.text('Danach'), findsOneWidget);
|
||||
// Kopfzeile zählt die Wiedergabe-Reihenfolge (nicht die Bibliothek)
|
||||
expect(find.text('2 Titel'), findsOneWidget);
|
||||
});
|
||||
|
||||
testWidgets('WarteschlangeSheet zeigt Wiederholung-Hinweis bei Repeat',
|
||||
(WidgetTester tester) async {
|
||||
final p = PlayerService();
|
||||
p.setWarteschlange([_song(1, 'A'), _song(2, 'B'), _song(3, 'C')]);
|
||||
p.setWiederholmodus(Wiederholmodus.playlist);
|
||||
await tester.pumpWidget(
|
||||
const MaterialApp(home: Scaffold(body: WarteschlangeSheet())));
|
||||
await tester.pump();
|
||||
|
||||
expect(find.textContaining('Wiederholung aktiv'), findsOneWidget);
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user