Skip to content

Commit 3dc1c4e

Browse files
committed
fix tests
1 parent 161444b commit 3dc1c4e

File tree

3 files changed

+36
-24
lines changed

3 files changed

+36
-24
lines changed

lib/widgets/measurements/charts.dart

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,9 @@ class _MeasurementChartWidgetFlState extends State<MeasurementChartWidgetFl> {
103103
sideTitles: SideTitles(
104104
showTitles: true,
105105
getTitlesWidget: (value, meta) {
106-
// Don't show the first and last entries, otherwise they'll overlap with the
107-
// calculated interval
106+
// Don't show the first and last entries, to avoid overlap
107+
// see https://stackoverflow.com/questions/73355777/flutter-fl-chart-how-can-we-avoid-the-overlap-of-the-ordinate
108+
// this is needlessly aggressive if the titles are "sparse", but we should optimize for more busy data
108109
if (value == meta.min || value == meta.max) {
109110
return const Text('');
110111
}
@@ -133,11 +134,13 @@ class _MeasurementChartWidgetFlState extends State<MeasurementChartWidgetFl> {
133134
showTitles: true,
134135
reservedSize: 65,
135136
getTitlesWidget: (value, meta) {
136-
// Don't show the first and last entries, otherwise they'll overlap with the
137-
// calculated interval
137+
// Don't show the first and last entries, to avoid overlap
138+
// see https://stackoverflow.com/questions/73355777/flutter-fl-chart-how-can-we-avoid-the-overlap-of-the-ordinate
139+
// this is needlessly aggressive if the titles are "sparse", but we should optimize for more busy data
138140
if (value == meta.min || value == meta.max) {
139141
return const Text('');
140142
}
143+
141144
return Text('$value ${widget._unit}');
142145
},
143146
),

test/measurements/measurement_entries_screen_test.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ void main() {
7373
expect(find.text('body fat'), findsOneWidget);
7474

7575
// Entries
76-
expect(find.text('10.2 %'), findsNWidgets(2));
77-
expect(find.text('18.1 %'), findsNWidgets(2));
76+
expect(find.text('10.2 %'), findsNWidgets(1));
77+
expect(find.text('18.1 %'), findsNWidgets(1));
7878
});
7979

8080
testWidgets('Tests the localization of dates - EN', (WidgetTester tester) async {

test/weight/weight_screen_test.dart

Lines changed: 27 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import 'package:mockito/annotations.dart';
2323
import 'package:mockito/mockito.dart';
2424
import 'package:provider/provider.dart';
2525
import 'package:wger/providers/body_weight.dart';
26+
import 'package:wger/providers/nutrition.dart';
2627
import 'package:wger/providers/user.dart';
2728
import 'package:wger/screens/form_screen.dart';
2829
import 'package:wger/screens/weight_screen.dart';
@@ -31,12 +32,14 @@ import 'package:wger/widgets/weight/forms.dart';
3132

3233
import '../../test_data/body_weight.dart';
3334
import '../../test_data/profile.dart';
35+
import '../nutrition/nutritional_plan_form_test.mocks.dart';
3436
import 'weight_screen_test.mocks.dart';
3537

3638
@GenerateMocks([BodyWeightProvider, UserProvider])
3739
void main() {
3840
late MockBodyWeightProvider mockWeightProvider;
3941
late MockUserProvider mockUserProvider;
42+
late MockNutritionPlansProvider mockNutritionPlansProvider;
4043

4144
setUp(() {
4245
mockWeightProvider = MockBodyWeightProvider();
@@ -45,21 +48,27 @@ void main() {
4548

4649
mockUserProvider = MockUserProvider();
4750
when(mockUserProvider.profile).thenReturn(tProfile1);
51+
52+
mockNutritionPlansProvider = MockNutritionPlansProvider();
53+
when(mockNutritionPlansProvider.currentPlan).thenReturn(null);
4854
});
4955

5056
Widget createWeightScreen({locale = 'en'}) {
51-
return ChangeNotifierProvider<UserProvider>(
52-
create: (context) => mockUserProvider,
53-
child: ChangeNotifierProvider<BodyWeightProvider>(
54-
create: (context) => mockWeightProvider,
55-
child: MaterialApp(
56-
locale: Locale(locale),
57-
localizationsDelegates: AppLocalizations.localizationsDelegates,
58-
supportedLocales: AppLocalizations.supportedLocales,
59-
home: const WeightScreen(),
60-
routes: {
61-
FormScreen.routeName: (_) => const FormScreen(),
62-
},
57+
return ChangeNotifierProvider<NutritionPlansProvider>(
58+
create: (context) => mockNutritionPlansProvider,
59+
child: ChangeNotifierProvider<UserProvider>(
60+
create: (context) => mockUserProvider,
61+
child: ChangeNotifierProvider<BodyWeightProvider>(
62+
create: (context) => mockWeightProvider,
63+
child: MaterialApp(
64+
locale: Locale(locale),
65+
localizationsDelegates: AppLocalizations.localizationsDelegates,
66+
supportedLocales: AppLocalizations.supportedLocales,
67+
home: const WeightScreen(),
68+
routes: {
69+
FormScreen.routeName: (_) => const FormScreen(),
70+
},
71+
),
6372
),
6473
),
6574
);
@@ -100,15 +109,15 @@ void main() {
100109

101110
testWidgets('Tests the localization of dates - EN', (WidgetTester tester) async {
102111
await tester.pumpWidget(createWeightScreen());
103-
104-
expect(find.text('1/1/2021'), findsOneWidget);
105-
expect(find.text('1/10/2021'), findsOneWidget);
112+
// these don't work because we only have 2 points, and to prevent overlaps we don't display their titles
113+
// expect(find.text('1/1'), findsOneWidget);
114+
// expect(find.text('1/10'), findsOneWidget);
106115
});
107116

108117
testWidgets('Tests the localization of dates - DE', (WidgetTester tester) async {
109118
await tester.pumpWidget(createWeightScreen(locale: 'de'));
110-
111-
expect(find.text('1.1.2021'), findsOneWidget);
112-
expect(find.text('10.1.2021'), findsOneWidget);
119+
// these don't work because we only have 2 points, and to prevent overlaps we don't display their titles
120+
// expect(find.text('1.1.'), findsOneWidget);
121+
// expect(find.text('10.1.'), findsOneWidget);
113122
});
114123
}

0 commit comments

Comments
 (0)