Skip to content

Commit c0614a4

Browse files
committed
tests: added tests for routes
1 parent 68d636e commit c0614a4

File tree

2 files changed

+125
-0
lines changed

2 files changed

+125
-0
lines changed

test/routes/app_pages_test.dart

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:taskwarrior/app/modules/about/bindings/about_binding.dart';
3+
import 'package:taskwarrior/app/modules/about/views/about_view.dart';
4+
import 'package:taskwarrior/app/modules/home/bindings/home_binding.dart';
5+
import 'package:taskwarrior/app/modules/splash/bindings/splash_binding.dart';
6+
7+
import 'package:taskwarrior/app/routes/app_pages.dart';
8+
import 'package:taskwarrior/app/modules/home/views/home_view.dart';
9+
import 'package:taskwarrior/app/modules/splash/views/splash_view.dart';
10+
11+
import 'package:taskwarrior/app/modules/detailRoute/views/detail_route_view.dart';
12+
import 'package:taskwarrior/app/modules/detailRoute/bindings/detail_route_binding.dart';
13+
import 'package:taskwarrior/app/modules/manageTaskServer/views/manage_task_server_view.dart';
14+
import 'package:taskwarrior/app/modules/manageTaskServer/bindings/manage_task_server_binding.dart';
15+
import 'package:taskwarrior/app/modules/onboarding/views/onboarding_view.dart';
16+
import 'package:taskwarrior/app/modules/onboarding/bindings/onboarding_binding.dart';
17+
import 'package:taskwarrior/app/modules/profile/views/profile_view.dart';
18+
import 'package:taskwarrior/app/modules/profile/bindings/profile_binding.dart';
19+
import 'package:taskwarrior/app/modules/reports/views/reports_view.dart';
20+
import 'package:taskwarrior/app/modules/reports/bindings/reports_binding.dart';
21+
import 'package:taskwarrior/app/modules/settings/views/settings_view.dart';
22+
import 'package:taskwarrior/app/modules/settings/bindings/settings_binding.dart';
23+
24+
void main() {
25+
group('AppPages Test', () {
26+
test('Initial route is correct', () {
27+
expect(AppPages.INITIAL, Routes.SPLASH);
28+
});
29+
30+
test('All routes should be defined correctly', () {
31+
final routes = AppPages.routes;
32+
33+
expect(routes.length, 9);
34+
35+
expect(
36+
routes.any((route) =>
37+
route.name == Routes.HOME &&
38+
route.page() is HomeView &&
39+
route.binding is HomeBinding),
40+
true,
41+
);
42+
expect(
43+
routes.any((route) =>
44+
route.name == Routes.SPLASH &&
45+
route.page() is SplashView &&
46+
route.binding is SplashBinding),
47+
true,
48+
);
49+
expect(
50+
routes.any((route) =>
51+
route.name == Routes.ABOUT &&
52+
route.page() is AboutView &&
53+
route.binding is AboutBinding),
54+
true,
55+
);
56+
expect(
57+
routes.any((route) =>
58+
route.name == Routes.DETAIL_ROUTE &&
59+
route.page() is DetailRouteView &&
60+
route.binding is DetailRouteBinding),
61+
true,
62+
);
63+
expect(
64+
routes.any((route) =>
65+
route.name == Routes.MANAGE_TASK_SERVER &&
66+
route.page() is ManageTaskServerView &&
67+
route.binding is ManageTaskServerBinding),
68+
true,
69+
);
70+
expect(
71+
routes.any((route) =>
72+
route.name == Routes.ONBOARDING &&
73+
route.page() is OnboardingView &&
74+
route.binding is OnboardingBinding),
75+
true,
76+
);
77+
expect(
78+
routes.any((route) =>
79+
route.name == Routes.PROFILE &&
80+
route.page() is ProfileView &&
81+
route.binding is ProfileBinding),
82+
true,
83+
);
84+
expect(
85+
routes.any((route) =>
86+
route.name == Routes.REPORTS &&
87+
route.page() is ReportsView &&
88+
route.binding is ReportsBinding),
89+
true,
90+
);
91+
expect(
92+
routes.any((route) =>
93+
route.name == Routes.SETTINGS &&
94+
route.page() is SettingsView &&
95+
route.binding is SettingsBinding),
96+
true,
97+
);
98+
});
99+
100+
test('All routes are accessible without crashing', () {
101+
final routes = AppPages.routes;
102+
103+
for (var route in routes) {
104+
expect(() => route.page(), returnsNormally,
105+
reason: 'Route ${route.name} should not throw errors');
106+
}
107+
});
108+
});
109+
}

test/routes/app_routes_test.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import 'package:flutter_test/flutter_test.dart';
2+
import 'package:taskwarrior/app/routes/app_pages.dart';
3+
4+
void main() {
5+
test('Routes should be defined correctly', () {
6+
expect(Routes.HOME, '/home');
7+
expect(Routes.ONBOARDING, '/onboarding');
8+
expect(Routes.SPLASH, '/splash');
9+
expect(Routes.MANAGE_TASK_SERVER, '/manage-task-server');
10+
expect(Routes.DETAIL_ROUTE, '/detail-route');
11+
expect(Routes.PROFILE, '/profile');
12+
expect(Routes.ABOUT, '/about');
13+
expect(Routes.REPORTS, '/reports');
14+
expect(Routes.SETTINGS, '/settings');
15+
});
16+
}

0 commit comments

Comments
 (0)