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>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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>());
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user