@@ -50,6 +50,74 @@ void main() {
5050 expect (configuration.invokeCustomEntrypoint, isFalse);
5151 });
5252
53+ test ('invokeCustomInit is true when init exists in main.dart' , () {
54+ final tempDirectory = createTempDir (
55+ directories: ['routes' ],
56+ files: ['main.dart' ],
57+ );
58+
59+ File (path.join (tempDirectory.path, 'main.dart' )).writeAsStringSync ('''
60+ Future<void> init(InternetAddress ip, int port) async {}
61+ ''' );
62+
63+ final configuration = buildRouteConfiguration (tempDirectory);
64+ expect (configuration.invokeCustomEntrypoint, isTrue);
65+ });
66+
67+ test ('invokeCustomInit is true when init with FutureOr exists in main.dart' ,
68+ () {
69+ final tempDirectory = createTempDir (
70+ directories: ['routes' ],
71+ files: ['main.dart' ],
72+ );
73+
74+ File (path.join (tempDirectory.path, 'main.dart' )).writeAsStringSync ('''
75+ FutureOr<void> init(InternetAddress ip, int port) async {}
76+ ''' );
77+
78+ final configuration = buildRouteConfiguration (tempDirectory);
79+ expect (configuration.invokeCustomEntrypoint, isTrue);
80+ });
81+
82+ test (
83+ '''invokeCustomInit is true when init with different parameter names exists in main.dart''' ,
84+ () {
85+ final tempDirectory = createTempDir (
86+ directories: ['routes' ],
87+ files: ['main.dart' ],
88+ );
89+
90+ File (path.join (tempDirectory.path, 'main.dart' )).writeAsStringSync ('''
91+ Future<void> init(InternetAddress hello, int world) async {}
92+ ''' );
93+
94+ final configuration = buildRouteConfiguration (tempDirectory);
95+ expect (configuration.invokeCustomEntrypoint, isTrue);
96+ });
97+
98+ test (
99+ '''invokeCustomInit is true when init with bad spacing exists in main.dart''' ,
100+ () {
101+ final tempDirectory = createTempDir (
102+ directories: ['routes' ],
103+ files: ['main.dart' ],
104+ );
105+
106+ File (path.join (tempDirectory.path, 'main.dart' )).writeAsStringSync ('''
107+ Future<void>init(InternetAddress ip,int port)async{}
108+ ''' );
109+
110+ final configuration = buildRouteConfiguration (tempDirectory);
111+ expect (configuration.invokeCustomEntrypoint, isTrue);
112+ });
113+
114+ test ('invokeCustomEntrypoint is false when main.dart does not exist' , () {
115+ final configuration = buildRouteConfiguration (
116+ createTempDir (directories: ['routes' ]),
117+ );
118+ expect (configuration.invokeCustomInit, isFalse);
119+ });
120+
53121 test ('includes global middleware when it exists' , () {
54122 final configuration = buildRouteConfiguration (
55123 createTempDir (files: ['routes/_middleware.dart' ]),
0 commit comments