Ajoute l'écran de composition de séance-modèle (presentation/workout_template_screen.dart), avec les ajustements application/domaine/repositories nécessaires et la navigation depuis l'accueil. flutter analyze propre, 12/12 tests verts, build APK debug validé. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
43 lines
1.3 KiB
Dart
43 lines
1.3 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:gametime/presentation/presentation.dart';
|
|
|
|
void main() {
|
|
testWidgets(
|
|
'la vue programme de séance ne permet pas de changer les mesures actives',
|
|
(tester) async {
|
|
final program = WorkoutTemplateProgramDraft(
|
|
clientKey: 'program-1',
|
|
programNameSnapshot: 'Jambes',
|
|
defaultRestSecondsSnapshot: 60,
|
|
programSnapshotJson: '{}',
|
|
exercises: [
|
|
WorkoutTemplateExerciseDraft(
|
|
snapshotExerciseId: 'exercise-1',
|
|
exerciseNameSnapshot: 'Squat',
|
|
setsCount: 3,
|
|
timeEnabled: true,
|
|
repsEnabled: true,
|
|
scoreEnabled: false,
|
|
targetTimeSeconds: 45,
|
|
targetReps: 10,
|
|
),
|
|
],
|
|
);
|
|
|
|
await tester.pumpWidget(
|
|
MaterialApp(home: WorkoutTemplateProgramDetailScreen(program: program)),
|
|
);
|
|
|
|
expect(find.byType(CheckboxListTile), findsNothing);
|
|
expect(find.text('Mesures à suivre'), findsNothing);
|
|
|
|
await tester.enterText(find.byType(TextFormField).first, '5');
|
|
await tester.pump();
|
|
|
|
expect(program.exercises.single.setsCountOverride, 5);
|
|
expect(find.text('5 séries · Temps + Répétitions'), findsOneWidget);
|
|
},
|
|
);
|
|
}
|