feat(exercice): valeurs par défaut d'exercice (tickets #39/#40, parent #30)
Étend le modèle Drift (tables.dart, app_database.dart/.g.dart), les entités/use cases/repositories et les écrans bibliothèque d'exercices et programme pour supporter des valeurs par défaut par exercice (répétitions/temps/poids proposés à la création d'une série). flutter analyze propre, 51/51 tests verts, build APK debug validé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -51,6 +51,9 @@ void main() {
|
||||
hasScoreMeasure: true,
|
||||
scoreLabel: 'Charge',
|
||||
scoreUnit: 'kg',
|
||||
defaultTargetTimeSeconds: 45,
|
||||
defaultTargetReps: 10,
|
||||
defaultTargetScore: 80,
|
||||
);
|
||||
|
||||
await tester.pumpWidget(
|
||||
@ -71,6 +74,9 @@ void main() {
|
||||
) async {
|
||||
final exerciseRepository = _FakeExerciseRepository();
|
||||
|
||||
await tester.binding.setSurfaceSize(const Size(400, 2400));
|
||||
addTearDown(() => tester.binding.setSurfaceSize(null));
|
||||
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
home: ExerciseFormScreen(
|
||||
@ -81,43 +87,28 @@ void main() {
|
||||
);
|
||||
|
||||
await tester.enterText(find.widgetWithText(TextFormField, 'Nom'), 'Run');
|
||||
await tester.dragUntilVisible(
|
||||
find.text('Score'),
|
||||
find.byType(ListView),
|
||||
const Offset(0, -200),
|
||||
await tester.enterText(
|
||||
find.widgetWithText(TextFormField, 'Temps par défaut (s)'),
|
||||
'30',
|
||||
);
|
||||
await tester.tap(find.widgetWithText(SwitchListTile, 'Score'));
|
||||
await tester.pump();
|
||||
|
||||
await tester.dragUntilVisible(
|
||||
find.text('Unité'),
|
||||
find.byType(ListView),
|
||||
const Offset(0, -200),
|
||||
);
|
||||
expect(find.widgetWithText(TextFormField, 'Unité'), findsOneWidget);
|
||||
|
||||
await tester.dragUntilVisible(
|
||||
find.text('Chrono intégré'),
|
||||
find.byType(ListView),
|
||||
const Offset(0, 200),
|
||||
);
|
||||
await tester.tap(find.text('Chrono intégré'));
|
||||
await tester.pump();
|
||||
|
||||
await tester.dragUntilVisible(
|
||||
find.text('Temps réalisé'),
|
||||
find.byType(ListView),
|
||||
const Offset(0, -200),
|
||||
);
|
||||
expect(find.text('Temps réalisé'), findsOneWidget);
|
||||
expect(find.widgetWithText(TextFormField, 'Unité'), findsNothing);
|
||||
|
||||
await tester.ensureVisible(find.text('Enregistrer'));
|
||||
await tester.tap(find.text('Enregistrer'));
|
||||
await tester.pumpAndSettle();
|
||||
|
||||
final saved = exerciseRepository.saved.single;
|
||||
expect(saved.scoreInputMode, ScoreInputMode.stopwatch);
|
||||
expect(saved.defaultTargetTimeSeconds, 30);
|
||||
expect(saved.defaultTargetScoreTimeMs, isNull);
|
||||
|
||||
await tester.pumpWidget(
|
||||
MaterialApp(
|
||||
|
||||
Reference in New Issue
Block a user