fix(album): overlay selection bar above navbar

This commit is contained in:
zarzet
2026-07-28 17:25:14 +07:00
parent 650c360eb9
commit 1390376f09
5 changed files with 202 additions and 99 deletions
+49
View File
@@ -4,7 +4,9 @@ import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:spotiflac_android/l10n/app_localizations.dart';
import 'package:spotiflac_android/models/track.dart';
import 'package:spotiflac_android/screens/album_screen.dart';
import 'package:spotiflac_android/widgets/animation_utils.dart';
import 'package:spotiflac_android/widgets/selection_bottom_bar.dart';
import 'package:spotiflac_android/widgets/track_detail_actions.dart';
import 'package:spotiflac_android/widgets/track_list_tile.dart';
@@ -95,4 +97,51 @@ void main() {
expect(enteredSelection, isTrue);
});
testWidgets('album selection bar is mounted in front of the shell navbar', (
tester,
) async {
await tester.binding.setSurfaceSize(const Size(430, 900));
addTearDown(() => tester.binding.setSurfaceSize(null));
var navbarTaps = 0;
await tester.pumpWidget(
ProviderScope(
child: MaterialApp(
localizationsDelegates: const [
AppLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: AppLocalizations.supportedLocales,
home: Scaffold(
extendBody: true,
body: const AlbumScreen(
albumId: 'album-1',
albumName: 'Album',
artistName: 'Artist',
tracks: [track],
),
bottomNavigationBar: GestureDetector(
behavior: HitTestBehavior.opaque,
onTap: () => navbarTaps++,
child: const SizedBox(height: 80),
),
),
),
),
);
await tester.pumpAndSettle();
await tester.ensureVisible(find.text('Selected song'));
await tester.longPress(find.text('Selected song'));
await tester.pumpAndSettle();
expect(find.byType(SelectionBottomBar), findsOneWidget);
await tester.tapAt(const Offset(2, 898));
await tester.pump();
expect(navbarTaps, 0);
});
}