Skip to content

Commit 59e3020

Browse files
committed
implemented new widget testing and resolved the failing widget test issue
1 parent 9d71da4 commit 59e3020

11 files changed

+851
-869
lines changed

lib/Pages/home_screen/home_screen.dart

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -244,9 +244,7 @@ class _HomeScreenState extends State<HomeScreen> {
244244
icon: Icon(
245245
Icons.notifications,
246246
),
247-
onPressed: () async {
248-
await NotificationApi.getNotifications(
249-
context: context);
247+
onPressed: () {
250248
showDialog(
251249
context: context,
252250
builder: (BuildContext context) {
@@ -259,7 +257,6 @@ class _HomeScreenState extends State<HomeScreen> {
259257
.primaryColor,
260258
content:
261259
NotificationPopupDialogueContainer(
262-
// context: context,
263260
themeIndex: themeIndex,
264261
),
265262
);

lib/Pages/home_screen/widgets/notification_popup_dialogue_container.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class NotificationPopupDialogueContainer extends StatelessWidget {
1414
Widget build(BuildContext context) {
1515
return BlocBuilder<HomeScreenBloc, HomeScreenState>(
1616
builder: (context, state) {
17+
NotificationApi.getNotifications(context: context);
1718
final notifications = state.notificationModel.notifications;
1819
return (notifications.length == 0)
1920
? Container(

test/widget_test/about_screen_widget_test.dart

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,21 @@
11
import 'dart:io';
2-
import 'package:flood_mobile/Constants/theme_provider.dart';
3-
import 'package:flood_mobile/Pages/about_screen.dart';
4-
import 'package:flood_mobile/Provider/api_provider.dart';
5-
import 'package:flood_mobile/Provider/client_provider.dart';
6-
import 'package:flood_mobile/Provider/home_provider.dart';
7-
import 'package:flood_mobile/Provider/sse_provider.dart';
8-
import 'package:flood_mobile/Provider/user_detail_provider.dart';
2+
import 'package:flood_mobile/Blocs/bloc_provider_list.dart';
3+
import 'package:flood_mobile/Pages/about_screen/about_screen.dart';
4+
import 'package:flutter_bloc/flutter_bloc.dart';
5+
96
import 'package:flutter_test/flutter_test.dart';
107
import 'package:flutter/material.dart';
11-
import 'package:provider/provider.dart';
128

139
void main() {
1410
setUp(() {});
1511
setUpAll(() => HttpOverrides.global = null);
1612
Widget createWidgetUnderTest() {
17-
return MultiProvider(
18-
providers: [
19-
ChangeNotifierProvider<UserDetailProvider>(
20-
create: (context) => UserDetailProvider(),
21-
),
22-
ChangeNotifierProvider<HomeProvider>(
23-
create: (context) => HomeProvider(),
24-
),
25-
ChangeNotifierProvider<SSEProvider>(
26-
create: (context) => SSEProvider(),
27-
),
28-
ChangeNotifierProvider<ApiProvider>(
29-
create: (context) => ApiProvider(),
30-
),
31-
ChangeNotifierProvider<ClientSettingsProvider>(
32-
create: (context) => ClientSettingsProvider(),
33-
),
34-
ChangeNotifierProvider<ThemeProvider>(
35-
create: (context) => ThemeProvider(),
13+
return MultiBlocProvider(
14+
providers: BlocProviders.multiBlocProviders,
15+
child: MaterialApp(
16+
home: Material(
17+
child: AboutScreen(themeIndex: 2),
3618
),
37-
],
38-
child: Consumer<ThemeProvider>(
39-
builder: (context, themeProvider, _) {
40-
print(ThemeProvider.themeMode);
41-
return MaterialApp(
42-
home: Material(
43-
child: AboutScreen(index: 2),
44-
));
45-
},
4619
),
4720
);
4821
}

test/widget_test/base_app_bar_widget_test.dart

Lines changed: 8 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,18 @@
1-
import 'package:flood_mobile/Components/base_app_bar.dart';
2-
import 'package:flood_mobile/Constants/theme_provider.dart';
3-
import 'package:flood_mobile/Provider/api_provider.dart';
4-
import 'package:flood_mobile/Provider/client_provider.dart';
5-
import 'package:flood_mobile/Provider/home_provider.dart';
6-
import 'package:flood_mobile/Provider/sse_provider.dart';
7-
import 'package:flood_mobile/Provider/user_detail_provider.dart';
1+
import 'package:flood_mobile/Blocs/bloc_provider_list.dart';
2+
import 'package:flood_mobile/Pages/widgets/base_app_bar.dart';
83
import 'package:flutter/material.dart';
4+
import 'package:flutter_bloc/flutter_bloc.dart';
95
import 'package:flutter_test/flutter_test.dart';
10-
import 'package:provider/provider.dart';
116

127
void main() {
138
setUp(() {});
149
Widget createWidgetUnderTest() {
15-
return MultiProvider(
16-
providers: [
17-
ChangeNotifierProvider<UserDetailProvider>(
18-
create: (context) => UserDetailProvider(),
10+
return MultiBlocProvider(
11+
providers: BlocProviders.multiBlocProviders,
12+
child: MaterialApp(
13+
home: Material(
14+
child: BaseAppBar(appBar: AppBar(), themeIndex: 2),
1915
),
20-
ChangeNotifierProvider<HomeProvider>(
21-
create: (context) => HomeProvider(),
22-
),
23-
ChangeNotifierProvider<SSEProvider>(
24-
create: (context) => SSEProvider(),
25-
),
26-
ChangeNotifierProvider<ApiProvider>(
27-
create: (context) => ApiProvider(),
28-
),
29-
ChangeNotifierProvider<ClientSettingsProvider>(
30-
create: (context) => ClientSettingsProvider(),
31-
),
32-
ChangeNotifierProvider<ThemeProvider>(
33-
create: (context) => ThemeProvider(),
34-
),
35-
],
36-
child: Consumer<ThemeProvider>(
37-
builder: (context, themeProvider, _) {
38-
print(ThemeProvider.themeMode);
39-
return MaterialApp(
40-
home: Material(
41-
child: BaseAppBar(appBar: AppBar(), index: 2),
42-
));
43-
},
4416
),
4517
);
4618
}

0 commit comments

Comments
 (0)