5
5
getSkippedCommitsText ,
6
6
decideReleaseStrategy ,
7
7
readVersions ,
8
+ getNextVersion ,
8
9
} from '../createReleasePR' ;
9
10
10
11
describe ( 'createReleasePR' , ( ) => {
@@ -79,16 +80,19 @@ describe('createReleasePR', () => {
79
80
javascript : {
80
81
current : '0.0.1' ,
81
82
releaseType : 'patch' ,
83
+ next : getNextVersion ( '0.0.1' , 'patch' ) ,
82
84
} ,
83
85
84
86
php : {
85
87
current : '0.0.1' ,
86
88
releaseType : 'patch' ,
89
+ next : getNextVersion ( '0.0.1' , 'patch' ) ,
87
90
} ,
88
91
89
92
java : {
90
93
current : '0.0.1' ,
91
94
releaseType : 'patch' ,
95
+ next : getNextVersion ( '0.0.1' , 'patch' ) ,
92
96
} ,
93
97
} )
94
98
) . toMatchInlineSnapshot ( `
@@ -104,6 +108,7 @@ describe('createReleasePR', () => {
104
108
javascript : {
105
109
current : '0.0.1' ,
106
110
releaseType : 'patch' ,
111
+ next : getNextVersion ( '0.0.1' , 'patch' ) ,
107
112
} ,
108
113
109
114
php : {
@@ -115,6 +120,7 @@ describe('createReleasePR', () => {
115
120
java : {
116
121
current : '0.0.1' ,
117
122
releaseType : 'patch' ,
123
+ next : getNextVersion ( '0.0.1' , 'patch' ) ,
118
124
} ,
119
125
} )
120
126
) . toMatchInlineSnapshot ( `
@@ -130,22 +136,25 @@ describe('createReleasePR', () => {
130
136
javascript : {
131
137
current : '0.0.1' ,
132
138
releaseType : 'patch' ,
139
+ next : getNextVersion ( '0.0.1' , 'patch' ) ,
133
140
} ,
134
141
135
142
php : {
136
143
current : '0.0.1' ,
137
144
releaseType : 'minor' ,
145
+ next : getNextVersion ( '0.0.1' , 'minor' ) ,
138
146
} ,
139
147
140
148
java : {
141
149
current : '0.0.1' ,
142
- releaseType : 'patch' ,
150
+ releaseType : null ,
143
151
skipRelease : true ,
152
+ next : getNextVersion ( '0.0.1' , null ) ,
144
153
} ,
145
154
} )
146
155
) . toMatchInlineSnapshot ( `
147
156
"- javascript: 0.0.1 -> **\`patch\` _(e.g. 0.0.2)_**
148
- - ~java: 0.0.1 -> **\`patch \` _(e.g. 0.0.2 )_**~
157
+ - ~java: 0.0.1 -> **\`null \` _(e.g. 0.0.1 )_**~
149
158
- No \`feat\` or \`fix\` commit, thus unchecked by default.
150
159
- php: 0.0.1 -> **\`minor\` _(e.g. 0.1.0)_**"
151
160
` ) ;
@@ -178,6 +187,7 @@ describe('createReleasePR', () => {
178
187
} ) ;
179
188
180
189
expect ( versions . javascript . releaseType ) . toEqual ( 'major' ) ;
190
+ expect ( versions . javascript . next ) . toEqual ( '1.0.0' ) ;
181
191
} ) ;
182
192
183
193
it ( 'bumps minor version for feat' , ( ) => {
@@ -205,6 +215,7 @@ describe('createReleasePR', () => {
205
215
} ) ;
206
216
207
217
expect ( versions . php . releaseType ) . toEqual ( 'minor' ) ;
218
+ expect ( versions . php . next ) . toEqual ( '0.1.0' ) ;
208
219
} ) ;
209
220
210
221
it ( 'bumps patch version for fix' , ( ) => {
@@ -232,6 +243,7 @@ describe('createReleasePR', () => {
232
243
} ) ;
233
244
234
245
expect ( versions . java . releaseType ) . toEqual ( 'patch' ) ;
246
+ expect ( versions . java . next ) . toEqual ( '0.0.2' ) ;
235
247
} ) ;
236
248
237
249
it ( 'marks noCommit for languages without any commit' , ( ) => {
@@ -261,6 +273,8 @@ describe('createReleasePR', () => {
261
273
expect ( versions . javascript . noCommit ) . toEqual ( true ) ;
262
274
expect ( versions . php . noCommit ) . toEqual ( true ) ;
263
275
expect ( versions . java . noCommit ) . toBeUndefined ( ) ;
276
+ expect ( versions . java . releaseType ) . toEqual ( 'patch' ) ;
277
+ expect ( versions . java . next ) . toEqual ( '0.0.2' ) ;
264
278
} ) ;
265
279
266
280
it ( 'releases every languages if a `specs` commit is present' , ( ) => {
@@ -289,10 +303,13 @@ describe('createReleasePR', () => {
289
303
290
304
expect ( versions . javascript . noCommit ) . toBeUndefined ( ) ;
291
305
expect ( versions . javascript . releaseType ) . toEqual ( 'patch' ) ;
306
+ expect ( versions . javascript . next ) . toEqual ( '0.0.2' ) ;
292
307
expect ( versions . php . noCommit ) . toBeUndefined ( ) ;
293
308
expect ( versions . php . releaseType ) . toEqual ( 'patch' ) ;
309
+ expect ( versions . php . next ) . toEqual ( '0.0.2' ) ;
294
310
expect ( versions . java . noCommit ) . toBeUndefined ( ) ;
295
311
expect ( versions . java . releaseType ) . toEqual ( 'patch' ) ;
312
+ expect ( versions . java . next ) . toEqual ( '0.0.2' ) ;
296
313
} ) ;
297
314
298
315
it ( 'bumps for `specs` feat with only language `fix` commits' , ( ) => {
@@ -328,10 +345,13 @@ describe('createReleasePR', () => {
328
345
329
346
expect ( versions . javascript . noCommit ) . toBeUndefined ( ) ;
330
347
expect ( versions . javascript . releaseType ) . toEqual ( 'minor' ) ;
348
+ expect ( versions . javascript . next ) . toEqual ( '0.1.0' ) ;
331
349
expect ( versions . php . noCommit ) . toBeUndefined ( ) ;
332
350
expect ( versions . php . releaseType ) . toEqual ( 'minor' ) ;
351
+ expect ( versions . php . next ) . toEqual ( '0.1.0' ) ;
333
352
expect ( versions . java . noCommit ) . toBeUndefined ( ) ;
334
353
expect ( versions . java . releaseType ) . toEqual ( 'minor' ) ;
354
+ expect ( versions . java . next ) . toEqual ( '0.1.0' ) ;
335
355
} ) ;
336
356
337
357
it ( 'marks skipRelease for patch upgrade without fix commit' , ( ) => {
@@ -361,6 +381,76 @@ describe('createReleasePR', () => {
361
381
expect ( versions . java . skipRelease ) . toBeUndefined ( ) ;
362
382
expect ( versions . php . skipRelease ) . toBeUndefined ( ) ;
363
383
} ) ;
384
+
385
+ it ( 'consider prerelease version and correctly bumps them' , ( ) => {
386
+ const versions = decideReleaseStrategy ( {
387
+ versions : {
388
+ javascript : {
389
+ current : '0.0.1-alpha' ,
390
+ } ,
391
+ java : {
392
+ current : '0.0.1-beta' ,
393
+ } ,
394
+ php : {
395
+ current : '0.0.1-algolia' ,
396
+ } ,
397
+ } ,
398
+ commits : [
399
+ {
400
+ hash : 'b2501882' ,
401
+ type : 'feat' ,
402
+ scope : 'specs' ,
403
+ message : 'add some descriptions' ,
404
+ raw : 'b2501882 feat(specs): add some descriptions' ,
405
+ } ,
406
+ ] ,
407
+ } ) ;
408
+
409
+ expect ( versions . javascript . noCommit ) . toBeUndefined ( ) ;
410
+ expect ( versions . javascript . releaseType ) . toEqual ( 'prerelease' ) ;
411
+ expect ( versions . javascript . next ) . toEqual ( '0.0.1-alpha.0' ) ;
412
+ expect ( versions . php . noCommit ) . toBeUndefined ( ) ;
413
+ expect ( versions . php . releaseType ) . toEqual ( 'prerelease' ) ;
414
+ expect ( versions . php . next ) . toEqual ( '0.0.1-algolia.0' ) ;
415
+ expect ( versions . java . noCommit ) . toBeUndefined ( ) ;
416
+ expect ( versions . java . releaseType ) . toEqual ( 'prerelease' ) ;
417
+ expect ( versions . java . next ) . toEqual ( '0.0.1-beta.0' ) ;
418
+ } ) ;
419
+
420
+ it ( 'bumps SNAPSHOT versions correctly' , ( ) => {
421
+ const versions = decideReleaseStrategy ( {
422
+ versions : {
423
+ javascript : {
424
+ current : '0.0.1-alpha' ,
425
+ } ,
426
+ java : {
427
+ current : '0.0.1-SNAPSHOT' ,
428
+ } ,
429
+ php : {
430
+ current : '0.0.1-beta' ,
431
+ } ,
432
+ } ,
433
+ commits : [
434
+ {
435
+ hash : 'b2501882' ,
436
+ type : 'feat' ,
437
+ scope : 'specs' ,
438
+ message : 'add some descriptions' ,
439
+ raw : 'b2501882 feat(specs): add some descriptions' ,
440
+ } ,
441
+ ] ,
442
+ } ) ;
443
+
444
+ expect ( versions . javascript . noCommit ) . toBeUndefined ( ) ;
445
+ expect ( versions . javascript . releaseType ) . toEqual ( 'prerelease' ) ;
446
+ expect ( versions . javascript . next ) . toEqual ( '0.0.1-alpha.0' ) ;
447
+ expect ( versions . php . noCommit ) . toBeUndefined ( ) ;
448
+ expect ( versions . php . releaseType ) . toEqual ( 'prerelease' ) ;
449
+ expect ( versions . php . next ) . toEqual ( '0.0.1-beta.0' ) ;
450
+ expect ( versions . java . noCommit ) . toBeUndefined ( ) ;
451
+ expect ( versions . java . releaseType ) . toEqual ( 'minor' ) ;
452
+ expect ( versions . java . next ) . toEqual ( '0.1.0-SNAPSHOT' ) ;
453
+ } ) ;
364
454
} ) ;
365
455
366
456
describe ( 'getSkippedCommitsText' , ( ) => {
0 commit comments