feat(exercice): affichage des médias pendant l'exécution (ticket #36)
Expose la galerie d'images d'exercice (backend du ticket #35) pendant l'exécution de séance sur workout_execution_screen.dart et program_screen.dart, avec les ajustements domain/use cases/repositories nécessaires. flutter analyze propre, 67/67 tests verts, build APK debug validé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@ -225,6 +225,66 @@ void main() {
|
||||
expect(updated.imageMediaId, 'media-1');
|
||||
});
|
||||
|
||||
test('program exercise snapshot keeps the full image gallery', () async {
|
||||
final exerciseRepository = _FakeExerciseRepository()
|
||||
..exercise = Exercise(
|
||||
metadata: _metadata('exercise-1'),
|
||||
name: 'Squat',
|
||||
imageMediaIds: const ['media-1', 'media-2', 'media-3'],
|
||||
videoMediaId: 'video-1',
|
||||
hasTimeMeasure: false,
|
||||
hasRepsMeasure: true,
|
||||
hasScoreMeasure: false,
|
||||
defaultTargetReps: 10,
|
||||
);
|
||||
final programRepository = _FakeProgramRepository()
|
||||
..programs.add(
|
||||
Program(
|
||||
metadata: _metadata('program-1'),
|
||||
name: 'Jambes',
|
||||
defaultRestSeconds: 60,
|
||||
),
|
||||
);
|
||||
final useCase = ProgramUseCases(
|
||||
programRepository: programRepository,
|
||||
exerciseRepository: exerciseRepository,
|
||||
templateRepository: _FakeWorkoutTemplateRepository(),
|
||||
clock: _FakeClock(DateTime.utc(2026, 7, 17, 12)),
|
||||
ids: _FakeIds(),
|
||||
originDeviceId: 'device-1',
|
||||
);
|
||||
|
||||
final snapshot = await useCase.addExercise(
|
||||
programId: 'program-1',
|
||||
exerciseId: 'exercise-1',
|
||||
position: 0,
|
||||
setsCount: 3,
|
||||
enabledMeasures: const {WorkoutMeasure.reps},
|
||||
);
|
||||
|
||||
expect(snapshot.exerciseImageMediaIdSnapshot, 'media-1');
|
||||
expect(snapshot.exerciseImageMediaIdsSnapshot, [
|
||||
'media-1',
|
||||
'media-2',
|
||||
'media-3',
|
||||
]);
|
||||
expect(snapshot.exerciseVideoMediaIdSnapshot, 'video-1');
|
||||
expect(snapshot.toSnapshotJson()['imageMediaIdsSnapshot'], [
|
||||
'media-1',
|
||||
'media-2',
|
||||
'media-3',
|
||||
]);
|
||||
expect(
|
||||
programRepository
|
||||
.programs
|
||||
.single
|
||||
.exercises
|
||||
.single
|
||||
.exerciseImageMediaIdsSnapshot,
|
||||
snapshot.exerciseImageMediaIdsSnapshot,
|
||||
);
|
||||
});
|
||||
|
||||
test('delete exercise removes it from referencing programs', () async {
|
||||
final exerciseRepository = _FakeExerciseRepository()
|
||||
..exercise = Exercise(
|
||||
|
||||
Reference in New Issue
Block a user