Skip to content

Commit e22d4b6

Browse files
Convert lightTheme and darkTheme to methods (#1234)
This PR converts the variables `lightTheme` and `darkTheme` to the methods `getLightTheme()` and `getDarkTheme()`. The reason for this is that in golden tests outside of `/app`, the `golden_toolkit` package is unable to load our "Rubik" font (see eBay/flutter_glove_box#158). With this method, the golden tests can override the font family with a font like "Roboto".
1 parent 75cb922 commit e22d4b6

23 files changed

+253
-248
lines changed

app/lib/main/sharezone_material_app.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ class SharezoneMaterialApp extends StatelessWidget {
4242
debugShowCheckedModeBanner: false,
4343
title: PlatformCheck.isWeb ? "Sharezone Web-App" : "Sharezone",
4444
color: primaryColor,
45-
darkTheme: darkTheme.copyWith(
45+
darkTheme: getDarkTheme().copyWith(
4646
visualDensity: themeSettings.visualDensitySetting.visualDensity),
47-
theme: lightTheme.copyWith(
47+
theme: getLightTheme().copyWith(
4848
visualDensity: themeSettings.visualDensitySetting.visualDensity),
4949
themeMode: _getThemeMode(themeSettings.themeBrightness),
5050
localizationsDelegates: const [

app/lib/navigation/drawer/sign_out_dialogs/src/sign_out_and_delete_anonymous_user.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ class DeleteConfirmationCheckbox extends StatelessWidget {
246246
Material(
247247
color: Colors.transparent,
248248
child: Theme(
249-
data: darkTheme,
249+
data: getDarkTheme(),
250250
child: Checkbox(
251251
value: confirm,
252252
onChanged: onChanged,

app/test_goldens/blackboard/details/blackboard_item_read_by_users_list_page_test.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ void main() {
8080
});
8181

8282
testGoldens('(light mode)', (tester) async {
83-
await pumpPage(tester, theme: lightTheme);
83+
await pumpPage(tester, theme: getLightTheme());
8484

8585
await multiScreenGolden(
8686
tester,
@@ -89,7 +89,7 @@ void main() {
8989
});
9090

9191
testGoldens('(dark mode)', (tester) async {
92-
await pumpPage(tester, theme: darkTheme);
92+
await pumpPage(tester, theme: getDarkTheme());
9393

9494
await multiScreenGolden(
9595
tester,
@@ -106,7 +106,7 @@ void main() {
106106
});
107107

108108
testGoldens('(light mode)', (tester) async {
109-
await pumpPage(tester, theme: lightTheme);
109+
await pumpPage(tester, theme: getLightTheme());
110110

111111
await multiScreenGolden(
112112
tester,
@@ -115,7 +115,7 @@ void main() {
115115
});
116116

117117
testGoldens('(dark mode)', (tester) async {
118-
await pumpPage(tester, theme: darkTheme);
118+
await pumpPage(tester, theme: getDarkTheme());
119119

120120
await multiScreenGolden(
121121
tester,

app/test_goldens/calendrical_events/page/past_calendrical_events_page_test.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void main() {
8484
});
8585

8686
testGoldens('renders correctly (light theme)', (tester) async {
87-
await pumpPage(tester, theme: lightTheme);
87+
await pumpPage(tester, theme: getLightTheme());
8888

8989
await multiScreenGolden(
9090
tester,
@@ -93,7 +93,7 @@ void main() {
9393
});
9494

9595
testGoldens('renders correctly (dark theme)', (tester) async {
96-
await pumpPage(tester, theme: darkTheme);
96+
await pumpPage(tester, theme: getDarkTheme());
9797

9898
await multiScreenGolden(
9999
tester,
@@ -112,7 +112,7 @@ void main() {
112112
});
113113

114114
testGoldens('renders correctly (light theme)', (tester) async {
115-
await pumpPage(tester, theme: lightTheme);
115+
await pumpPage(tester, theme: getLightTheme());
116116

117117
await multiScreenGolden(
118118
tester,
@@ -121,7 +121,7 @@ void main() {
121121
});
122122

123123
testGoldens('renders correctly (dark theme)', (tester) async {
124-
await pumpPage(tester, theme: darkTheme);
124+
await pumpPage(tester, theme: getDarkTheme());
125125

126126
await multiScreenGolden(
127127
tester,

app/test_goldens/dashboard/dashboard_page_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ void main() {
6969
BlocProvider<HolidayBloc>(
7070
bloc: holidayBloc,
7171
child: MaterialApp(
72-
theme: lightTheme,
72+
theme: getLightTheme(),
7373
home: const Scaffold(
7474
body: Center(
7575
child: HolidayCountdownSection(),

app/test_goldens/groups/src/pages/course/course_edit/design/src/dialog/select_design_dialog_test.dart

+6-6
Original file line numberDiff line numberDiff line change
@@ -67,22 +67,22 @@ void main() {
6767

6868
testGoldens('displays select base color dialog as expected (light mode)',
6969
(tester) async {
70-
await pumpSelectDesignDialog(tester, theme: lightTheme);
70+
await pumpSelectDesignDialog(tester, theme: getLightTheme());
7171

7272
await multiScreenGolden(tester, 'select_base_color_dialog_light');
7373
});
7474

7575
testGoldens('displays select base color dialog as expected (dark mode)',
7676
(tester) async {
77-
await pumpSelectDesignDialog(tester, theme: darkTheme);
77+
await pumpSelectDesignDialog(tester, theme: getDarkTheme());
7878

7979
await multiScreenGolden(tester, 'select_base_color_dialog_dark');
8080
});
8181

8282
testGoldens(
8383
'displays select a color shade dialog as expected (light mode)',
8484
(tester) async {
85-
await pumpSelectDesignDialog(tester, theme: lightTheme);
85+
await pumpSelectDesignDialog(tester, theme: getLightTheme());
8686

8787
await tester
8888
.tap(find.byKey(Key('color-circle-${Colors.blue.value}')).last);
@@ -94,7 +94,7 @@ void main() {
9494
testGoldens(
9595
'displays select a color shade dialog as expected (dark mode)',
9696
(tester) async {
97-
await pumpSelectDesignDialog(tester, theme: darkTheme);
97+
await pumpSelectDesignDialog(tester, theme: getDarkTheme());
9898

9999
await tester
100100
.tap(find.byKey(Key('color-circle-${Colors.blue.value}')).last);
@@ -113,14 +113,14 @@ void main() {
113113

114114
testGoldens('displays select design dialog as expected (light mode)',
115115
(tester) async {
116-
await pumpSelectDesignDialog(tester, theme: lightTheme);
116+
await pumpSelectDesignDialog(tester, theme: getLightTheme());
117117

118118
await multiScreenGolden(tester, 'select_free_design_dialog_light');
119119
});
120120

121121
testGoldens('displays select design dialog as expected (dark mode)',
122122
(tester) async {
123-
await pumpSelectDesignDialog(tester, theme: darkTheme);
123+
await pumpSelectDesignDialog(tester, theme: getDarkTheme());
124124

125125
await multiScreenGolden(tester, 'select_free_design_dialog_dark');
126126
});

app/test_goldens/homework/homework_dialog/homework_dialog_test.dart

+12-12
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@ void main() {
6565
);
6666

6767
await pumpAndSettleHomeworkDialog(tester,
68-
isEditing: false, theme: lightTheme);
68+
isEditing: false, theme: getLightTheme());
6969

7070
await multiScreenGolden(
7171
tester,
7272
'homework_dialog_add_empty_light',
7373
);
7474

7575
await pumpAndSettleHomeworkDialog(tester,
76-
isEditing: false, theme: darkTheme);
76+
isEditing: false, theme: getDarkTheme());
7777

7878
await multiScreenGolden(
7979
tester,
@@ -131,15 +131,15 @@ void main() {
131131
);
132132

133133
await pumpAndSettleHomeworkDialog(tester,
134-
isEditing: false, theme: lightTheme);
134+
isEditing: false, theme: getLightTheme());
135135

136136
await multiScreenGolden(
137137
tester,
138138
'homework_dialog_add_filled_1_light',
139139
);
140140

141141
await pumpAndSettleHomeworkDialog(tester,
142-
isEditing: false, theme: darkTheme);
142+
isEditing: false, theme: getDarkTheme());
143143

144144
await multiScreenGolden(
145145
tester,
@@ -200,7 +200,7 @@ void main() {
200200
whenListenPresentation(homeworkDialogBloc,
201201
initialEvents: [const StartedUploadingAttachments()]);
202202
await pumpAndSettleHomeworkDialog(tester,
203-
isEditing: false, theme: lightTheme);
203+
isEditing: false, theme: getLightTheme());
204204

205205
// Wait for the SnackBar to appear.
206206
await tester.pump(const Duration(milliseconds: 500));
@@ -223,7 +223,7 @@ void main() {
223223
await pumpAndSettleHomeworkDialog(
224224
tester,
225225
isEditing: false,
226-
theme: darkTheme,
226+
theme: getDarkTheme(),
227227
);
228228
// Otherwise the theme is not completly applied (some text is still black
229229
// instead of white).
@@ -293,7 +293,7 @@ void main() {
293293
SavingFailed(Exception('Test Exception Message'), null)
294294
]);
295295
await pumpAndSettleHomeworkDialog(tester,
296-
isEditing: false, theme: lightTheme);
296+
isEditing: false, theme: getLightTheme());
297297

298298
// Wait for the SnackBar to appear.
299299
await tester.pump(const Duration(milliseconds: 500));
@@ -318,7 +318,7 @@ void main() {
318318
await pumpAndSettleHomeworkDialog(
319319
tester,
320320
isEditing: false,
321-
theme: darkTheme,
321+
theme: getDarkTheme(),
322322
);
323323
// Otherwise the theme is not completly applied (some text is still black
324324
// instead of white).
@@ -357,15 +357,15 @@ void main() {
357357
initialEvents: [const RequiredFieldsNotFilledOut()]);
358358

359359
await pumpAndSettleHomeworkDialog(tester,
360-
isEditing: false, theme: lightTheme);
360+
isEditing: false, theme: getLightTheme());
361361

362362
await multiScreenGolden(
363363
tester,
364364
'homework_dialog_with_error_light',
365365
);
366366

367367
await pumpAndSettleHomeworkDialog(tester,
368-
isEditing: false, theme: darkTheme);
368+
isEditing: false, theme: getDarkTheme());
369369

370370
await multiScreenGolden(
371371
tester,
@@ -415,15 +415,15 @@ void main() {
415415
);
416416

417417
await pumpAndSettleHomeworkDialog(tester,
418-
isEditing: false, theme: lightTheme);
418+
isEditing: false, theme: getLightTheme());
419419

420420
await multiScreenGolden(
421421
tester,
422422
'homework_dialog_edit_filled_1_light',
423423
);
424424

425425
await pumpAndSettleHomeworkDialog(tester,
426-
isEditing: false, theme: darkTheme);
426+
isEditing: false, theme: getDarkTheme());
427427

428428
await multiScreenGolden(
429429
tester,

app/test_goldens/homework/teacher/homework_done_by_users_list/homework_completion_user_list_page_test.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void main() {
8484
});
8585

8686
testGoldens('(light mode)', (tester) async {
87-
await pumpPage(tester, theme: lightTheme);
87+
await pumpPage(tester, theme: getLightTheme());
8888

8989
await multiScreenGolden(
9090
tester,
@@ -93,7 +93,7 @@ void main() {
9393
});
9494

9595
testGoldens('(dark mode)', (tester) async {
96-
await pumpPage(tester, theme: darkTheme);
96+
await pumpPage(tester, theme: getDarkTheme());
9797

9898
await multiScreenGolden(
9999
tester,
@@ -110,7 +110,7 @@ void main() {
110110
});
111111

112112
testGoldens('(light mode)', (tester) async {
113-
await pumpPage(tester, theme: lightTheme);
113+
await pumpPage(tester, theme: getLightTheme());
114114

115115
await multiScreenGolden(
116116
tester,
@@ -119,7 +119,7 @@ void main() {
119119
});
120120

121121
testGoldens('(dark mode)', (tester) async {
122-
await pumpPage(tester, theme: darkTheme);
122+
await pumpPage(tester, theme: getDarkTheme());
123123

124124
await multiScreenGolden(
125125
tester,

app/test_goldens/onboarding/mobile_welcome_page_test.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void main() {
2222
}
2323

2424
testGoldens('renders as expected (light theme)', (tester) async {
25-
await pumpPage(tester, theme: lightTheme);
25+
await pumpPage(tester, theme: getLightTheme());
2626

2727
await multiScreenGolden(tester, 'mobile_welcome_page_light');
2828
});
@@ -32,7 +32,7 @@ void main() {
3232
//
3333
// Ticket: https://github.com/SharezoneApp/sharezone-app/issues/916
3434
testGoldens('renders as expected (dark theme)', (tester) async {
35-
await pumpPage(tester, theme: darkTheme);
35+
await pumpPage(tester, theme: getDarkTheme());
3636

3737
await multiScreenGolden(tester, 'mobile_welcome_page_dark');
3838
});

app/test_goldens/privacy_policy/privacy_policy_display_settings_test.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void main() {
2525
testGoldens('displays as expected', (tester) async {
2626
await tester.pumpWidget(
2727
MaterialApp(
28-
theme: lightTheme,
28+
theme: getLightTheme(),
2929
home: Scaffold(
3030
body: ChangeNotifierProvider<PrivacyPolicyThemeSettings>(
3131
create: (context) {

app/test_goldens/settings/notification_page_test.dart

+3-3
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,13 @@ void main() {
6666
}
6767

6868
testGoldens('renders as expected (light mode)', (tester) async {
69-
await pumpNotificationPage(tester, themeData: lightTheme);
69+
await pumpNotificationPage(tester, themeData: getLightTheme());
7070

7171
await multiScreenGolden(tester, 'notification_page_light');
7272
});
7373

7474
testGoldens('renders as expected (dark mode)', (tester) async {
75-
await pumpNotificationPage(tester, themeData: darkTheme);
75+
await pumpNotificationPage(tester, themeData: getDarkTheme());
7676

7777
await multiScreenGolden(tester, 'notification_page_dark');
7878
});
@@ -82,7 +82,7 @@ void main() {
8282
SharezonePlusFeature.changeHomeworkReminderTime))
8383
.thenReturn(false);
8484

85-
await pumpNotificationPage(tester, themeData: lightTheme);
85+
await pumpNotificationPage(tester, themeData: getLightTheme());
8686

8787
await tester
8888
.tap(find.byKey(const Key('homework-notifications-time-tile')));

app/test_goldens/settings/support/support_page_test.dart

+4-4
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@ void main() {
6060
});
6161

6262
testGoldens('renders as expected (light mode)', (tester) async {
63-
await pumpSupportPage(tester, theme: lightTheme);
63+
await pumpSupportPage(tester, theme: getLightTheme());
6464

6565
await multiScreenGolden(tester, 'support_page_with_plus_light');
6666
});
6767

6868
testGoldens('renders as expected (dark mode)', (tester) async {
69-
await pumpSupportPage(tester, theme: darkTheme);
69+
await pumpSupportPage(tester, theme: getDarkTheme());
7070

7171
await multiScreenGolden(tester, 'support_page_with_plus_dark');
7272
});
@@ -78,13 +78,13 @@ void main() {
7878
});
7979

8080
testGoldens('renders as expected (light mode)', (tester) async {
81-
await pumpSupportPage(tester, theme: lightTheme);
81+
await pumpSupportPage(tester, theme: getLightTheme());
8282

8383
await multiScreenGolden(tester, 'support_page_without_plus_light');
8484
});
8585

8686
testGoldens('renders as expected (dark mode)', (tester) async {
87-
await pumpSupportPage(tester, theme: darkTheme);
87+
await pumpSupportPage(tester, theme: getDarkTheme());
8888

8989
await multiScreenGolden(tester, 'support_page_without_plus_dark');
9090
});

0 commit comments

Comments
 (0)