@@ -22,7 +22,9 @@ import 'package:flutter_test/flutter_test.dart';
22
22
import 'package:mockito/annotations.dart' ;
23
23
import 'package:mockito/mockito.dart' ;
24
24
import 'package:provider/provider.dart' ;
25
+ import 'package:wger/helpers/json.dart' ;
25
26
import 'package:wger/l10n/generated/app_localizations.dart' ;
27
+ import 'package:wger/models/workouts/routine.dart' ;
26
28
import 'package:wger/providers/routines.dart' ;
27
29
import 'package:wger/widgets/routines/gym_mode/session_page.dart' ;
28
30
@@ -32,8 +34,11 @@ import 'gym_mode_session_screen_test.mocks.dart';
32
34
@GenerateMocks ([RoutinesProvider ])
33
35
void main () {
34
36
final mockRoutinesProvider = MockRoutinesProvider ();
37
+ late Routine testRoutine;
35
38
36
- final testRoutine = getTestRoutine ();
39
+ setUp (() {
40
+ testRoutine = getTestRoutine ();
41
+ });
37
42
38
43
Widget renderSessionPage ({locale = 'en' }) {
39
44
return ChangeNotifierProvider <RoutinesProvider >(
@@ -46,7 +51,7 @@ void main() {
46
51
body: SessionPage (
47
52
testRoutine,
48
53
PageController (),
49
- const TimeOfDay (hour: 12 , minute: 34 ),
54
+ const TimeOfDay (hour: 13 , minute: 35 ),
50
55
const {},
51
56
),
52
57
),
@@ -65,6 +70,29 @@ void main() {
65
70
});
66
71
});
67
72
73
+ testWidgets ('Test that data from session is loaded - null times' , (WidgetTester tester) async {
74
+ testRoutine.sessions[0 ].session.timeStart = null ;
75
+ testRoutine.sessions[0 ].session.timeEnd = null ;
76
+ final timeNow = timeToString (TimeOfDay .now ())! ;
77
+
78
+ withClock (Clock .fixed (DateTime (2021 , 5 , 1 )), () async {
79
+ await tester.pumpWidget (renderSessionPage ());
80
+ expect (find.text ('13:35' ), findsOneWidget);
81
+ expect (find.text (timeNow), findsOneWidget);
82
+ });
83
+ });
84
+
85
+ testWidgets ('Test correct default data (no existing session)' , (WidgetTester tester) async {
86
+ testRoutine.sessions = [];
87
+ final timeNow = timeToString (TimeOfDay .now ())! ;
88
+
89
+ await tester.pumpWidget (renderSessionPage ());
90
+ expect (find.text ('13:35' ), findsOneWidget);
91
+ expect (find.text (timeNow), findsOneWidget);
92
+ final toggleButtons = tester.widget <ToggleButtons >(find.byType (ToggleButtons ));
93
+ expect (toggleButtons.isSelected[1 ], isTrue);
94
+ });
95
+
68
96
testWidgets ('Test that correct data is send to server' , (WidgetTester tester) async {
69
97
withClock (Clock .fixed (DateTime (2021 , 5 , 1 )), () async {
70
98
await tester.pumpWidget (renderSessionPage ());
0 commit comments