fix(ui): align explicit badges with track titles

This commit is contained in:
zarzet
2026-08-23 01:13:10 +07:00
parent bc58a28455
commit c9cf26fea6
2 changed files with 54 additions and 5 deletions
@@ -0,0 +1,45 @@
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:spotiflac_android/l10n/app_localizations.dart';
import 'package:spotiflac_android/widgets/audio_quality_badges.dart';
void main() {
testWidgets('explicit title badge follows the title alphabetic baseline', (
tester,
) async {
await tester.pumpWidget(
MaterialApp(
localizationsDelegates: AppLocalizations.localizationsDelegates,
supportedLocales: AppLocalizations.supportedLocales,
home: const Scaffold(
body: ExplicitTrackTitle(
title: 'Explicit Track',
explicit: true,
style: TextStyle(fontSize: 24, height: 1.2),
),
),
),
);
expect(tester.takeException(), isNull);
final richText = tester.widget<Text>(
find
.descendant(
of: find.byType(ExplicitTrackTitle),
matching: find.byWidgetPredicate(
(widget) => widget is Text && widget.textSpan != null,
),
)
.first,
);
final rootSpan = richText.textSpan! as TextSpan;
final badgeSpan = rootSpan.children!.whereType<WidgetSpan>().single;
final transform = badgeSpan.child as Transform;
expect(badgeSpan.alignment, PlaceholderAlignment.baseline);
expect(badgeSpan.baseline, TextBaseline.alphabetic);
expect(transform.transform.getTranslation().y, -2);
expect(find.byType(ExplicitBadge), findsOneWidget);
});
}