@@ -19,9 +19,9 @@ void main() {
1919 late RecordingProcessRunner processRunner;
2020 late RecordingProcessRunner gitProcessRunner;
2121 late CommandRunner <void > runner;
22- late RepositoryPackage package;
2322
24- void createPendingChangelogFile (String name, String content) {
23+ void createPendingChangelogFile (
24+ RepositoryPackage package, String name, String content) {
2525 final File pendingChangelog = package.directory
2626 .childDirectory ('pending_changelogs' )
2727 .childFile (name)
@@ -41,7 +41,24 @@ void main() {
4141 ],
4242 errorHandler: errorHandler);
4343
44- const List <ProcessCall > expectedGitCallsForABFiles = [
44+ RepositoryPackage createTestPackage () {
45+ final RepositoryPackage package =
46+ createFakePackage ('a_package' , packagesDir);
47+
48+ package.changelogFile.writeAsStringSync ('''
49+ ## 1.0.0
50+
51+ - Old changes
52+ ''' );
53+ package.pubspecFile.writeAsStringSync ('''
54+ name: a_package
55+ version: 1.0.0
56+ ''' );
57+ package.directory.childDirectory ('pending_changelogs' ).createSync ();
58+ return package;
59+ }
60+
61+ const List <ProcessCall > expectedGitCallsForABFiles = < ProcessCall > [
4562 ProcessCall ('git-checkout' , < String > ['-b' , 'release-branch' ], null ),
4663 ProcessCall ('git-rm' ,
4764 < String > ['/packages/a_package/pending_changelogs/a.yaml' ], null ),
@@ -88,27 +105,15 @@ void main() {
88105 runner = CommandRunner <void >('branch_for_batch_release_command' ,
89106 'Test for branch_for_batch_release_command' );
90107 runner.addCommand (command);
91- package = createFakePackage ('a_package' , packagesDir);
92-
93- package.changelogFile.writeAsStringSync ('''
94- ## 1.0.0
95-
96- - Old changes
97- ''' );
98- package.pubspecFile.writeAsStringSync ('''
99- name: a_package
100- version: 1.0.0
101- ''' );
102- package.directory.childDirectory ('pending_changelogs' ).createSync ();
103- });
104-
105- tearDown (() {
106- package.directory.deleteSync (recursive: true );
107108 });
108109
109110 group ('happy path' , () {
110111 test ('can bump minor' , () async {
111- createPendingChangelogFile ('a.yaml' , '''
112+ final RepositoryPackage package = createTestPackage ();
113+ addTearDown (() {
114+ package.directory.deleteSync (recursive: true );
115+ });
116+ createPendingChangelogFile (package, 'a.yaml' , '''
112117changelog: A new feature
113118version: minor
114119''' );
@@ -133,7 +138,11 @@ version: minor
133138 });
134139
135140 test ('can bump major' , () async {
136- createPendingChangelogFile ('a.yaml' , '''
141+ final RepositoryPackage package = createTestPackage ();
142+ addTearDown (() {
143+ package.directory.deleteSync (recursive: true );
144+ });
145+ createPendingChangelogFile (package, 'a.yaml' , '''
137146changelog: A new feature
138147version: major
139148''' );
@@ -158,7 +167,11 @@ version: major
158167 });
159168
160169 test ('can bump patch' , () async {
161- createPendingChangelogFile ('a.yaml' , '''
170+ final RepositoryPackage package = createTestPackage ();
171+ addTearDown (() {
172+ package.directory.deleteSync (recursive: true );
173+ });
174+ createPendingChangelogFile (package, 'a.yaml' , '''
162175changelog: A new feature
163176version: patch
164177''' );
@@ -183,11 +196,15 @@ version: patch
183196 });
184197
185198 test ('merges multiple changelogs, minor and major' , () async {
186- createPendingChangelogFile ('a.yaml' , '''
199+ final RepositoryPackage package = createTestPackage ();
200+ addTearDown (() {
201+ package.directory.deleteSync (recursive: true );
202+ });
203+ createPendingChangelogFile (package, 'a.yaml' , '''
187204changelog: A new feature
188205version: minor
189206''' );
190- createPendingChangelogFile ('b.yaml' , '''
207+ createPendingChangelogFile (package, 'b.yaml' , '''
191208changelog: A breaking change
192209version: major
193210''' );
@@ -213,11 +230,15 @@ version: major
213230 });
214231
215232 test ('merges multiple changelogs, minor and patch' , () async {
216- createPendingChangelogFile ('a.yaml' , '''
233+ final RepositoryPackage package = createTestPackage ();
234+ addTearDown (() {
235+ package.directory.deleteSync (recursive: true );
236+ });
237+ createPendingChangelogFile (package, 'a.yaml' , '''
217238changelog: A new feature
218239version: minor
219240''' );
220- createPendingChangelogFile ('b.yaml' , '''
241+ createPendingChangelogFile (package, 'b.yaml' , '''
221242changelog: A bug fix
222243version: patch
223244''' );
@@ -243,11 +264,15 @@ version: patch
243264 });
244265
245266 test ('merges multiple changelogs, major and patch' , () async {
246- createPendingChangelogFile ('a.yaml' , '''
267+ final RepositoryPackage package = createTestPackage ();
268+ addTearDown (() {
269+ package.directory.deleteSync (recursive: true );
270+ });
271+ createPendingChangelogFile (package, 'a.yaml' , '''
247272changelog: A breaking change
248273version: major
249274''' );
250- createPendingChangelogFile ('b.yaml' , '''
275+ createPendingChangelogFile (package, 'b.yaml' , '''
251276changelog: A bug fix
252277version: patch
253278''' );
@@ -273,15 +298,19 @@ version: patch
273298 });
274299
275300 test ('merges multiple changelogs, minor, major and patch' , () async {
276- createPendingChangelogFile ('a.yaml' , '''
301+ final RepositoryPackage package = createTestPackage ();
302+ addTearDown (() {
303+ package.directory.deleteSync (recursive: true );
304+ });
305+ createPendingChangelogFile (package, 'a.yaml' , '''
277306changelog: A new feature
278307version: minor
279308''' );
280- createPendingChangelogFile ('b.yaml' , '''
309+ createPendingChangelogFile (package, 'b.yaml' , '''
281310changelog: A breaking change
282311version: major
283312''' );
284- createPendingChangelogFile ('c.yaml' , '''
313+ createPendingChangelogFile (package, 'c.yaml' , '''
285314changelog: A bug fix
286315version: patch
287316''' );
@@ -335,11 +364,15 @@ version: patch
335364 });
336365
337366 test ('merges multiple changelogs with same version' , () async {
338- createPendingChangelogFile ('a.yaml' , '''
367+ final RepositoryPackage package = createTestPackage ();
368+ addTearDown (() {
369+ package.directory.deleteSync (recursive: true );
370+ });
371+ createPendingChangelogFile (package, 'a.yaml' , '''
339372changelog: A new feature
340373version: minor
341374''' );
342- createPendingChangelogFile ('b.yaml' , '''
375+ createPendingChangelogFile (package, 'b.yaml' , '''
343376changelog: Another new feature
344377version: minor
345378''' );
@@ -365,11 +398,15 @@ version: minor
365398 });
366399
367400 test ('mix of skip and other version changes' , () async {
368- createPendingChangelogFile ('a.yaml' , '''
401+ final RepositoryPackage package = createTestPackage ();
402+ addTearDown (() {
403+ package.directory.deleteSync (recursive: true );
404+ });
405+ createPendingChangelogFile (package, 'a.yaml' , '''
369406changelog: A new feature
370407version: minor
371408''' );
372- createPendingChangelogFile ('b.yaml' , '''
409+ createPendingChangelogFile (package, 'b.yaml' , '''
373410changelog: A documentation update
374411version: skip
375412''' );
@@ -395,7 +432,11 @@ version: skip
395432 });
396433
397434 test ('skips version update' , () async {
398- createPendingChangelogFile ('a.yaml' , '''
435+ final RepositoryPackage package = createTestPackage ();
436+ addTearDown (() {
437+ package.directory.deleteSync (recursive: true );
438+ });
439+ createPendingChangelogFile (package, 'a.yaml' , '''
399440changelog: A new feature
400441version: skip
401442''' );
@@ -415,6 +456,10 @@ version: skip
415456 });
416457
417458 test ('handles no changelog files' , () async {
459+ final RepositoryPackage package = createTestPackage ();
460+ addTearDown (() {
461+ package.directory.deleteSync (recursive: true );
462+ });
418463 final List <String > output = await runBatchCommand ();
419464
420465 expect (
@@ -432,7 +477,11 @@ version: skip
432477
433478 group ('error handling' , () {
434479 test ('throw when git-checkout fails' , () async {
435- createPendingChangelogFile ('a.yaml' , '''
480+ final RepositoryPackage package = createTestPackage ();
481+ addTearDown (() {
482+ package.directory.deleteSync (recursive: true );
483+ });
484+ createPendingChangelogFile (package, 'a.yaml' , '''
436485changelog: A new feature
437486version: major
438487''' );
@@ -451,7 +500,11 @@ version: major
451500 });
452501
453502 test ('throw when git-rm fails' , () async {
454- createPendingChangelogFile ('a.yaml' , '''
503+ final RepositoryPackage package = createTestPackage ();
504+ addTearDown (() {
505+ package.directory.deleteSync (recursive: true );
506+ });
507+ createPendingChangelogFile (package, 'a.yaml' , '''
455508changelog: A new feature
456509version: major
457510''' );
@@ -471,7 +524,11 @@ version: major
471524 });
472525
473526 test ('throw when git-add fails' , () async {
474- createPendingChangelogFile ('a.yaml' , '''
527+ final RepositoryPackage package = createTestPackage ();
528+ addTearDown (() {
529+ package.directory.deleteSync (recursive: true );
530+ });
531+ createPendingChangelogFile (package, 'a.yaml' , '''
475532changelog: A new feature
476533version: major
477534''' );
@@ -489,7 +546,11 @@ version: major
489546 });
490547
491548 test ('throw when git-commit fails' , () async {
492- createPendingChangelogFile ('a.yaml' , '''
549+ final RepositoryPackage package = createTestPackage ();
550+ addTearDown (() {
551+ package.directory.deleteSync (recursive: true );
552+ });
553+ createPendingChangelogFile (package, 'a.yaml' , '''
493554changelog: A new feature
494555version: major
495556''' );
@@ -507,7 +568,11 @@ version: major
507568 });
508569
509570 test ('throw when git-push fails' , () async {
510- createPendingChangelogFile ('a.yaml' , '''
571+ final RepositoryPackage package = createTestPackage ();
572+ addTearDown (() {
573+ package.directory.deleteSync (recursive: true );
574+ });
575+ createPendingChangelogFile (package, 'a.yaml' , '''
511576changelog: A new feature
512577version: major
513578''' );
@@ -525,12 +590,25 @@ version: major
525590 });
526591
527592 test ('throws for pre-1.0.0 packages' , () async {
593+ final RepositoryPackage package =
594+ createFakePackage ('a_package' , packagesDir);
595+
596+ addTearDown (() {
597+ package.directory.deleteSync (recursive: true );
598+ });
599+
528600 // Set a pre-1.0.0 version.
601+ package.changelogFile.writeAsStringSync ('''
602+ ## 0.5.0
603+
604+ - Old changes
605+ ''' );
529606 package.pubspecFile.writeAsStringSync ('''
530607name: a_package
531608version: 0.5.0
532609''' );
533- createPendingChangelogFile ('a.yaml' , '''
610+ package.directory.childDirectory ('pending_changelogs' ).createSync ();
611+ createPendingChangelogFile (package, 'a.yaml' , '''
534612changelog: A new feature
535613version: minor
536614''' );
0 commit comments