@@ -10,9 +10,11 @@ import 'utils.dart';
10
10
11
11
/// We test the build runner by mocking the specs and then checking the output
12
12
/// content for the expected generate command.
13
+ ///
14
+ /// we do not use mock process runner for github issues because we want to test
15
+ /// that generated code compiles.
16
+ /// If you do not want to generate the actual code, then you can initialise [MockProcessRunner] in the test
13
17
void main () {
14
- // we do not use mock process runner for github issues because we want to test
15
- // that generated code compiles
16
18
var processRunner = ProcessRunner ();
17
19
group ('Github Issues' , () {
18
20
// setUpAll(() {
@@ -58,11 +60,8 @@ void main() {
58
60
process: processRunner,
59
61
);
60
62
61
- expect (generatedOutput,
62
- contains ('Skipping source gen because generator does not need it.' ),
63
- reason: generatedOutput);
64
- expect (generatedOutput, contains ('Successfully formatted code.' ),
65
- reason: generatedOutput);
63
+ expectSourceGenSkipped (generatedOutput);
64
+ expectCodeFormattedSuccessfully (generatedOutput);
66
65
var analyzeResult = await Process .run (
67
66
'dart' ,
68
67
['analyze' ],
@@ -101,11 +100,9 @@ void main() {
101
100
annotatedFileContent.replaceAll ('{{issueNumber}}' , issueNumber),
102
101
);
103
102
104
- expect (generatedOutput,
105
- contains ('Skipping source gen because generator does not need it.' ),
106
- reason: generatedOutput);
107
- expect (generatedOutput, contains ('Successfully formatted code.' ),
108
- reason: generatedOutput);
103
+ expectSourceGenSkipped (generatedOutput);
104
+ expectCodeFormattedSuccessfully (generatedOutput);
105
+
109
106
var analyzeResult = await Process .run (
110
107
'dart' ,
111
108
['analyze' , '--no-fatal-warnings' ],
@@ -133,13 +130,8 @@ void main() {
133
130
annotatedFileContent.replaceAll ('{{issueNumber}}' , issueNumber),
134
131
);
135
132
136
- expect (
137
- generatedOutput,
138
- contains (
139
- 'pub run build_runner build --delete-conflicting-outputs' ),
140
- reason: generatedOutput);
141
- expect (generatedOutput, contains ('Successfully formatted code.' ),
142
- reason: generatedOutput);
133
+ expectSourceGenRun (generatedOutput);
134
+ expectCodeFormattedSuccessfully (generatedOutput);
143
135
var workingDirectory = path.join (parentFolder, 'output' );
144
136
var analyzeResult = await Process .run (
145
137
'dart' ,
@@ -180,11 +172,8 @@ void main() {
180
172
annotatedFileContent.replaceAll ('{{issueNumber}}' , issueNumber),
181
173
);
182
174
183
- expect (generatedOutput,
184
- contains ('Skipping source gen because generator does not need it.' ),
185
- reason: generatedOutput);
186
- expect (generatedOutput, contains ('Successfully formatted code.' ),
187
- reason: generatedOutput);
175
+ expectSourceGenSkipped (generatedOutput);
176
+ expectCodeFormattedSuccessfully (generatedOutput);
188
177
var analyzeResult = await Process .run (
189
178
'dart' ,
190
179
['analyze' , '--fatal-warnings' ],
@@ -212,13 +201,8 @@ void main() {
212
201
annotatedFileContent.replaceAll ('{{issueNumber}}' , issueNumber),
213
202
);
214
203
215
- expect (
216
- generatedOutput,
217
- contains (
218
- 'pub run build_runner build --delete-conflicting-outputs' ),
219
- reason: generatedOutput);
220
- expect (generatedOutput, contains ('Successfully formatted code.' ),
221
- reason: generatedOutput);
204
+ expectSourceGenRun (generatedOutput);
205
+ expectCodeFormattedSuccessfully (generatedOutput);
222
206
var workingDirectory = path.join (parentFolder, 'output' );
223
207
await Process .run (
224
208
'dart' ,
@@ -257,11 +241,8 @@ void main() {
257
241
var generatedOutput = await generateFromPath (annotatedFile.path,
258
242
process: processRunner, openapiSpecFilePath: inputSpecFile.path);
259
243
260
- expect (generatedOutput,
261
- contains ('Skipping source gen because generator does not need it.' ),
262
- reason: generatedOutput);
263
- expect (generatedOutput, contains ('Successfully formatted code.' ),
264
- reason: generatedOutput);
244
+ expectSourceGenSkipped (generatedOutput);
245
+ expectCodeFormattedSuccessfully (generatedOutput);
265
246
var analyzeResult = await Process .run (
266
247
'dart' ,
267
248
['analyze' , '--no-fatal-warnings' ],
@@ -282,8 +263,7 @@ void main() {
282
263
var generatedOutput = await generateFromPath (annotatedFile.path,
283
264
process: processRunner, openapiSpecFilePath: inputSpecFile.path);
284
265
285
- expect (generatedOutput, contains ('Successfully formatted code.' ),
286
- reason: generatedOutput);
266
+ expectCodeFormattedSuccessfully (generatedOutput);
287
267
var workingDirectory = path.join (parentFolder, 'output' );
288
268
var analyzeResult = await Process .run (
289
269
'dart' ,
@@ -333,5 +313,90 @@ void main() {
333
313
cleanup (workingDirectory);
334
314
}, skip: true );
335
315
});
316
+
317
+ group ('#164' , () {
318
+ var issueNumber = '164' ;
319
+ var parentFolder = path.join (testSpecPath, 'issue' , issueNumber);
320
+ var workingDirectory = path.join (parentFolder, 'output' );
321
+ setUpAll (
322
+ () {
323
+ var workingDirectory = path.join (parentFolder, 'output' );
324
+ cleanup (workingDirectory);
325
+ },
326
+ );
327
+ test ('[dio] Test that generation does not fail' , () async {
328
+ var generatedOutput = await generateFromAnnotation (
329
+ Openapi (
330
+ additionalProperties: DioProperties (
331
+ pubName: 'petstore_api' , pubAuthor: 'Johnny_dep' ),
332
+ inputSpec: RemoteSpec (
333
+ path: 'https://petstore3.swagger.io/api/v3/openapi.json' ),
334
+ typeMappings: {'Pet' : 'ExamplePet' },
335
+ generatorName: Generator .dio,
336
+ runSourceGenOnOutput: true ,
337
+ skipIfSpecIsUnchanged: false ,
338
+ cleanSubOutputDirectory: [
339
+ './test/specs/issue/$issueNumber /output'
340
+ ],
341
+ outputDirectory: './test/specs/issue/$issueNumber /output' ),
342
+ process: processRunner,
343
+ );
344
+
345
+ expectSourceGenRun (generatedOutput);
346
+ expectCodeFormattedSuccessfully (generatedOutput);
347
+ var analyzeResult = await Process .run (
348
+ 'dart' ,
349
+ ['analyze' , '--no-fatal-warnings' ],
350
+ workingDirectory: workingDirectory,
351
+ );
352
+ expect (analyzeResult.exitCode, 0 ,
353
+ reason: '${analyzeResult .stdout }\n\n ${analyzeResult .stderr }' );
354
+ cleanup (workingDirectory);
355
+ });
356
+ });
357
+
358
+ group ('#167' , () {
359
+ var issueNumber = '167' ;
360
+ var parentFolder = path.join (testSpecPath, 'issue' , issueNumber);
361
+ var workingDirectory = path.join (parentFolder, 'output' );
362
+ setUpAll (
363
+ () {
364
+ var workingDirectory = path.join (parentFolder, 'output' );
365
+ cleanup (workingDirectory);
366
+ },
367
+ );
368
+ test ('[dio] Test that generation does not fail' , () async {
369
+ var generatedOutput = await generateFromAnnotation (
370
+ Openapi (
371
+ additionalProperties: DioAltProperties (
372
+ pubName: 'issue_api' ,
373
+ ),
374
+ inputSpec: InputSpec (
375
+ path:
376
+ './test/specs/issue/$issueNumber /github_issue_#167.yaml' ),
377
+ generatorName: Generator .dio,
378
+ runSourceGenOnOutput: true ,
379
+ typeMappings: {'Pet' : 'ExamplePet' , 'Test' : 'ExampleTest' },
380
+ skipIfSpecIsUnchanged: false ,
381
+ cleanSubOutputDirectory: [
382
+ './test/specs/issue/$issueNumber /output'
383
+ ],
384
+ outputDirectory: './test/specs/issue/$issueNumber /output' ),
385
+ process: processRunner,
386
+ );
387
+
388
+ expectSourceGenRun (generatedOutput);
389
+ expectCodeFormattedSuccessfully (generatedOutput);
390
+ var analyzeResult = await Process .run (
391
+ 'dart' ,
392
+ ['analyze' , '--no-fatal-warnings' ],
393
+ workingDirectory: workingDirectory,
394
+ );
395
+ expect (analyzeResult.exitCode, 0 ,
396
+ reason: '${analyzeResult .stdout }\n\n ${analyzeResult .stderr }' );
397
+
398
+ cleanup (workingDirectory);
399
+ });
400
+ });
336
401
});
337
402
}
0 commit comments