fix(bienvenida): match body/bullet type sizes and clip the logo mark
Tier 4 visual fidelity, audit 14.4/14.5/14.6/14.8 (t4 lines 693-701): body copy is 14.5px (was bodyMedium's 14), bullet titles are 13.5px/w800 and subtitles 11.5px (was 14/w800 and 12), the gap between bullets tightens from 16 to 12, and the 76x76 logo mark is now clipped to a 20px rounded rect instead of painted square.
This commit is contained in:
@@ -65,6 +65,74 @@ void main() {
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'visual fidelity (audit 14.4/14.5): body copy is 14.5px, bullet titles '
|
||||
'are 13.5px/w800, bullet subtitles are 11.5px (t4 lines 697/700-702)',
|
||||
(tester) async {
|
||||
final navegacion = EstadoNavegacionRaiz();
|
||||
addTearDown(navegacion.dispose);
|
||||
|
||||
await tester.pumpWidget(_app(navegacion: navegacion));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
final l10n = lookupAppLocalizations(const Locale('es'));
|
||||
|
||||
final body = tester.widget<Text>(
|
||||
find.textContaining('53.412 emisoras de 238 países'),
|
||||
);
|
||||
expect(body.style?.fontSize, 14.5);
|
||||
|
||||
final tituloBullet = tester.widget<Text>(
|
||||
find.text(l10n.welcomeBullet1Title),
|
||||
);
|
||||
expect(tituloBullet.style?.fontSize, 13.5);
|
||||
expect(tituloBullet.style?.fontWeight, FontWeight.w800);
|
||||
|
||||
final subtituloBullet = tester.widget<Text>(
|
||||
find.text(l10n.welcomeBullet1Subtitle),
|
||||
);
|
||||
expect(subtituloBullet.style?.fontSize, 11.5);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'visual fidelity (audit 14.6): the 3 feature bullets are spaced 12px '
|
||||
'apart, not 16 (t4 line 701)',
|
||||
(tester) async {
|
||||
final navegacion = EstadoNavegacionRaiz();
|
||||
addTearDown(navegacion.dispose);
|
||||
|
||||
await tester.pumpWidget(_app(navegacion: navegacion));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
final bullets = find.byType(FilaCaracteristicaBienvenida);
|
||||
final gap =
|
||||
tester.getTopLeft(bullets.at(1)).dy -
|
||||
tester.getBottomLeft(bullets.at(0)).dy;
|
||||
expect(gap, 12);
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'visual fidelity (audit 14.8): the logo mark is clipped to a 20px '
|
||||
'rounded rect, not painted square (t4 line 693)',
|
||||
(tester) async {
|
||||
final navegacion = EstadoNavegacionRaiz();
|
||||
addTearDown(navegacion.dispose);
|
||||
|
||||
await tester.pumpWidget(_app(navegacion: navegacion));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
final clip = tester.widget<ClipRRect>(
|
||||
find.ancestor(
|
||||
of: find.byKey(const ValueKey('welcome-logo')),
|
||||
matching: find.byType(ClipRRect),
|
||||
),
|
||||
);
|
||||
expect(clip.borderRadius, BorderRadius.circular(20));
|
||||
},
|
||||
);
|
||||
|
||||
testWidgets('rendered content contains no monetization strings', (
|
||||
tester,
|
||||
) async {
|
||||
|
||||
Reference in New Issue
Block a user