@@ -317,4 +317,70 @@ describe("Common API utility functions", function() {
317317
318318 } ) ;
319319 } ) ;
320+
321+ describe ( 'Parsing app version' , ( ) => {
322+ it ( 'should not parse invalid semver' , ( ) => {
323+ should . deepEqual ( common . parseAppVersion ( 'abcd' ) , { original : 'abcd' , success : false } ) ;
324+ } ) ;
325+
326+ it ( 'should parse semver into its parts' , ( ) => {
327+ should . deepEqual ( common . parseAppVersion ( '1.0.0' ) , {
328+ major : 1 ,
329+ minor : 0 ,
330+ patch : 0 ,
331+ prerelease : [ ] ,
332+ build : [ ] ,
333+ original : '1.0.0' ,
334+ success : true ,
335+ } ) ;
336+ } ) ;
337+
338+ it ( 'should coerce incomplete semver' , ( ) => {
339+ should . deepEqual ( common . parseAppVersion ( '1' ) , {
340+ major : 1 ,
341+ minor : 0 ,
342+ patch : 0 ,
343+ prerelease : [ ] ,
344+ build : [ ] ,
345+ original : '1' ,
346+ success : true ,
347+ } ) ;
348+ } ) ;
349+
350+ it ( 'should parse semver prerelease' , ( ) => {
351+ should . deepEqual ( common . parseAppVersion ( '1.0.0-prerelease' ) , {
352+ major : 1 ,
353+ minor : 0 ,
354+ patch : 0 ,
355+ prerelease : [ 'prerelease' ] ,
356+ build : [ ] ,
357+ original : '1.0.0-prerelease' ,
358+ success : true ,
359+ } ) ;
360+ } ) ;
361+
362+ it ( 'should parse semver build' , ( ) => {
363+ should . deepEqual ( common . parseAppVersion ( '1.0.0+build' ) , {
364+ major : 1 ,
365+ minor : 0 ,
366+ patch : 0 ,
367+ prerelease : [ ] ,
368+ build : [ 'build' ] ,
369+ original : '1.0.0+build' ,
370+ success : true ,
371+ } ) ;
372+ } ) ;
373+
374+ it ( 'should parse semver prerelease and build' , ( ) => {
375+ should . deepEqual ( common . parseAppVersion ( '1.0.0-prerelease+build' ) , {
376+ major : 1 ,
377+ minor : 0 ,
378+ patch : 0 ,
379+ prerelease : [ 'prerelease' ] ,
380+ build : [ 'build' ] ,
381+ original : '1.0.0-prerelease+build' ,
382+ success : true ,
383+ } ) ;
384+ } ) ;
385+ } ) ;
320386} ) ;
0 commit comments