Files
storytime/test/core/theme_test.dart
T
Vincent Bourdon 02a121703f feat(j0.3): socle transverse (Result/Failure, theme, router, DI)
- core/error : Result<S> maison (Ok/Err) + Failure scellee avec egalite de valeur
- core/theme : AppTheme Material 3 (palette coucher, cibles tactiles enfant)
- core/router : routes nommees child/parentGate/parent (Navigator 1, placeholders)
- core/di : conventions providers
- CLAUDE.md §7 : Result maison & Navigator 1 actes (YAGNI)
- ROADMAP : 0.3 cochee, Jalon 0 termine
- corrections code review : egalite Failure, assertions tests, Map.unmodifiable

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 17:30:45 +02:00

41 lines
1.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:storytime/core/theme/app_theme.dart';
void main() {
group('AppTheme', () {
testWidgets('useMaterial3 est activé', (tester) async {
await tester.pumpWidget(
MaterialApp(theme: AppTheme.light(), home: const SizedBox.shrink()),
);
final theme = Theme.of(tester.element(find.byType(SizedBox)));
expect(theme.useMaterial3, isTrue);
});
testWidgets('la couleur primaire correspond à la palette coucher', (
tester,
) async {
await tester.pumpWidget(
MaterialApp(theme: AppTheme.light(), home: const SizedBox.shrink()),
);
final theme = Theme.of(tester.element(find.byType(SizedBox)));
// Palette « coucher » : violet/indigo doux.
// On vérifie que la teinte de seed est bien dans le spectre attendu.
final primary = theme.colorScheme.primary;
// HSL : le bleu/violet doit dominer sur le rouge et le vert.
final hsl = HSLColor.fromColor(primary);
expect(
hsl.hue,
inInclusiveRange(200.0, 320.0),
reason: 'La couleur primaire doit être dans le spectre bleu-violet',
);
});
test('AppTheme.light() retourne un ThemeData non nul', () {
expect(AppTheme.light(), isA<ThemeData>());
});
});
}