@@ -127,6 +127,56 @@ void main() {
127
127
).called (1 );
128
128
});
129
129
130
+ test ('logs process.stdout' , () async {
131
+ final generatorHooks = _MockGeneratorHooks ();
132
+ when (
133
+ () => generatorHooks.preGen (
134
+ vars: any (named: 'vars' ),
135
+ workingDirectory: any (named: 'workingDirectory' ),
136
+ onVarsChanged: any (named: 'onVarsChanged' ),
137
+ ),
138
+ ).thenAnswer ((invocation) async {
139
+ (invocation.namedArguments[const Symbol ('onVarsChanged' )] as Function (
140
+ Map <String , dynamic > vars,
141
+ ))
142
+ .call (< String , dynamic > {});
143
+ });
144
+ when (
145
+ () => generator.generate (
146
+ any (),
147
+ vars: any (named: 'vars' ),
148
+ fileConflictResolution: FileConflictResolution .overwrite,
149
+ ),
150
+ ).thenAnswer ((_) async => []);
151
+ when (() => generator.hooks).thenReturn (generatorHooks);
152
+ when (() => process.stdout).thenAnswer (
153
+ (_) => Stream .fromIterable ([
154
+ utf8.encode (' Message A ' ),
155
+ utf8.encode ('' ),
156
+ utf8.encode (' Message B' ),
157
+ utf8.encode (' ' ),
158
+ utf8.encode ('Message C ' ),
159
+ utf8.encode (' ' ),
160
+ utf8.encode ('Message D' ),
161
+ ]),
162
+ );
163
+ when (() => process.stderr).thenAnswer ((_) => const Stream .empty ());
164
+ when (
165
+ () => directoryWatcher.events,
166
+ ).thenAnswer ((_) => const Stream .empty ());
167
+
168
+ command.run ().ignore ();
169
+
170
+ await Future <void >.delayed (Duration .zero);
171
+
172
+ verifyInOrder ([
173
+ () => logger.info ('Message A' ),
174
+ () => logger.info ('Message B' ),
175
+ () => logger.info ('Message C' ),
176
+ () => logger.info ('Message D' ),
177
+ ]);
178
+ });
179
+
130
180
test ('runs codegen when changes are made to the public/routes directory' ,
131
181
() async {
132
182
final controller = StreamController <WatchEvent >();
0 commit comments