import 'package:drift/native.dart'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:provider/provider.dart'; import 'package:melo/library/database.dart'; import 'package:melo/library/playlist_service.dart'; import 'package:melo/playlists/playlists_screen.dart'; Widget _wrap(MeloDb db, PlaylistService service, Widget child) { return MultiProvider( providers: [ Provider.value(value: db), ChangeNotifierProvider.value(value: service), ], child: MaterialApp(home: child), ); } void main() { testWidgets('zeigt Leer-Zustand ohne Playlisten', (tester) async { final db = MeloDb(NativeDatabase.memory()); final service = PlaylistService(db); await tester.pumpWidget(_wrap(db, service, const PlaylistsScreen())); await tester.pumpAndSettle(); expect(find.text('Noch keine Playlisten'), findsOneWidget); await db.close(); }); testWidgets('zeigt angelegte Playlist in der Liste', (tester) async { final db = MeloDb(NativeDatabase.memory()); final service = PlaylistService(db); await db.createPlaylist('Road Trip'); await tester.pumpWidget(_wrap(db, service, const PlaylistsScreen())); await tester.pumpAndSettle(); expect(find.text('Road Trip'), findsOneWidget); expect(find.text('0 Songs'), findsWidgets); await db.close(); }); }