@@ -42,6 +42,10 @@ describe('isValidVersion', () => {
4242 expect ( isValidVersion ( '1.2.3rc1' ) ) . toBe ( true ) ;
4343 } ) ;
4444
45+ test ( 'accepts valid Python-style post release version' , ( ) => {
46+ expect ( isValidVersion ( '1.2.3-1' ) ) . toBe ( true ) ;
47+ } ) ;
48+
4549 test ( 'does not accept leading "v"' , ( ) => {
4650 expect ( isValidVersion ( 'v1.2.3' ) ) . toBe ( false ) ;
4751 } ) ;
@@ -110,6 +114,17 @@ describe('parseVersion', () => {
110114 } ) ;
111115 } ) ;
112116
117+ test ( 'parses a Python-style post release version' , ( ) => {
118+ expect ( parseVersion ( '1.2.3-1' ) ) . toEqual ( {
119+ major : 1 ,
120+ minor : 2 ,
121+ patch : 3 ,
122+ // we misinterpret the post release number as `pre` but this is fine as we
123+ // have specific checks for what we consider a preview release
124+ pre : '1' ,
125+ } ) ;
126+ } ) ;
127+
113128 test ( 'does not parse an invalid version' , ( ) => {
114129 expect ( parseVersion ( 'v1.2' ) ) . toBeNull ( ) ;
115130 } ) ;
@@ -120,9 +135,12 @@ describe('parseVersion', () => {
120135} ) ;
121136
122137describe ( 'isPreviewRelease' , ( ) => {
123- test ( 'accepts semver preview release' , ( ) => {
124- expect ( isPreviewRelease ( '2.3.4-preview1' ) ) . toBe ( true ) ;
125- } ) ;
138+ test . each ( [ 'preview' , 'pre' , 'alpha.0' , 'beta' , 'rc.1' , 'dev' ] ) (
139+ 'accepts semver preview release' ,
140+ previewSuffix => {
141+ expect ( isPreviewRelease ( `2.3.4-${ previewSuffix } 1` ) ) . toBe ( true ) ;
142+ }
143+ ) ;
126144
127145 test ( 'accepts Python-style preview release' , ( ) => {
128146 expect ( isPreviewRelease ( '2.3.4rc0' ) ) . toBe ( true ) ;
@@ -135,6 +153,10 @@ describe('isPreviewRelease', () => {
135153 test ( 'does not accept non-release strings' , ( ) => {
136154 expect ( isPreviewRelease ( '4-preview' ) ) . toBe ( false ) ;
137155 } ) ;
156+
157+ test ( 'does not accept Python-style post release' , ( ) => {
158+ expect ( isPreviewRelease ( '1.2.3-1' ) ) . toBe ( false ) ;
159+ } ) ;
138160} ) ;
139161
140162describe ( 'versionGreaterOrEqualThan' , ( ) => {
0 commit comments