fix(exercice): score par défaut à 0 et affichage des répétitions en séance (tickets #44, #45)

Autorise un score par défaut à 0 (#44) et corrige l'affichage des
répétitions à 0 pendant l'exécution au lieu de la vraie cible (#45),
sur exercise_library_screen.dart et workout_execution_screen.dart,
avec les ajustements domain/use cases associés. flutter analyze
propre (mêmes 8 infos préexistantes), 79/79 tests verts, build APK
debug validé.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 22:35:52 +02:00
parent d3b93cb131
commit 1aa2304328
6 changed files with 85 additions and 16 deletions

View File

@ -43,6 +43,42 @@ void main() {
expect(find.text('00:45'), findsOneWidget);
});
testWidgets('les répétitions sont initialisées avec la cible', (
tester,
) async {
final clock = _FakeClock(DateTime.utc(2026, 7, 17, 12));
final session = ActiveWorkoutSession(
metadata: _metadata('session-1'),
sourceWorkoutTemplateId: 'template-1',
status: ActiveWorkoutStatus.running,
startedAt: DateTime.utc(2026, 7, 17, 12),
lastPersistedAt: DateTime.utc(2026, 7, 17, 12),
elapsedActiveMs: 0,
currentProgramIndex: 0,
currentExerciseIndex: 0,
currentSetIndex: 0,
resolvedTemplateSnapshotJson: _sessionSnapshot(targetReps: 8),
);
await tester.pumpWidget(
MaterialApp(
home: WorkoutExecutionScreen(
initialSession: session,
activeUseCases: _activeUseCases(
_FakeActiveSessionRepository(),
clock,
),
closeUseCase: _closeUseCase(_FakeActiveSessionRepository(), clock),
historyUseCases: _historyUseCases(clock),
workoutTemplateUseCases: _workoutTemplateUseCases(),
),
),
);
expect(find.text('Répétitions'), findsOneWidget);
expect(find.text('8'), findsOneWidget);
});
testWidgets('les mesures cumulées respectent la hiérarchie visuelle', (
tester,
) async {
@ -618,8 +654,8 @@ void main() {
expect(find.text('2 / 3'), findsOneWidget);
expect(find.text('30 s'), findsOneWidget);
for (var i = 0; i < 3; i++) {
await tester.tap(find.byIcon(Icons.add));
for (var i = 0; i < 2; i++) {
await tester.tap(find.byIcon(Icons.remove));
await tester.pump();
}
await tester.enterText(
@ -637,6 +673,7 @@ void main() {
expect(repository.session?.currentSetIndex, 2);
expect(find.text('Programme 1/1 · Exercice 1/1'), findsOneWidget);
expect(find.text('3 / 3'), findsOneWidget);
expect(find.text('5'), findsOneWidget);
},
);