@@ -4,13 +4,6 @@ import { describe, it } from 'mocha';
4
4
import { version , versionInfo } from '../version' ;
5
5
6
6
describe ( 'Version' , ( ) => {
7
- it ( 'version' , ( ) => {
8
- expect ( version ) . to . be . a ( 'string' ) ;
9
- expect ( version ) . to . match (
10
- / ^ \d + \. \d + \. \d ( - ( a l p h a | b e t a | r c | ( e x p e r i m e n t a l - [ \w - ] + ) ) \. \d + ) ? $ / ,
11
- ) ;
12
- } ) ;
13
-
14
7
it ( 'versionInfo' , ( ) => {
15
8
expect ( versionInfo ) . to . be . an ( 'object' ) ;
16
9
expect ( versionInfo ) . to . have . all . keys (
@@ -21,20 +14,38 @@ describe('Version', () => {
21
14
) ;
22
15
23
16
const { major, minor, patch, preReleaseTag } = versionInfo ;
24
-
25
- expect ( major ) . to . be . a ( 'number' ) ;
26
- expect ( minor ) . to . be . a ( 'number' ) ;
27
- expect ( patch ) . to . be . a ( 'number' ) ;
17
+ expect ( major ) . to . be . a ( 'number' ) . at . least ( 0 ) ;
18
+ expect ( minor ) . to . be . a ( 'number' ) . at . least ( 0 ) ;
19
+ expect ( patch ) . to . be . a ( 'number' ) . at . least ( 0 ) ;
28
20
29
21
// istanbul ignore next (Can't be verified on all versions)
30
- if ( preReleaseTag !== null ) {
31
- expect ( preReleaseTag ) . to . be . a ( 'string' ) ;
22
+ switch ( preReleaseTag ?. split ( '.' ) . length ) {
23
+ case null :
24
+ break ;
25
+ case 2 :
26
+ expect ( preReleaseTag ) . to . match (
27
+ / ^ ( a l p h a | b e t a | r c | e x p e r i m e n t a l - [ \w - ] + ) \. \d + / ,
28
+ ) ;
29
+ break ;
30
+ case 4 :
31
+ expect ( preReleaseTag ) . to . match (
32
+ / ^ ( a l p h a | b e t a | r c ) \. \d + .e x p e r i m e n t a l - [ \w - ] + \. \d + / ,
33
+ ) ;
34
+ break ;
35
+ default :
36
+ expect . fail ( 'Invalid pre-release tag: ' + preReleaseTag ) ;
32
37
}
38
+ } ) ;
39
+
40
+ it ( 'version' , ( ) => {
41
+ expect ( version ) . to . be . a ( 'string' ) ;
33
42
34
- expect (
35
- `${ major } .${ minor } .${ patch } ` +
36
- // istanbul ignore next (Can't be verified on all versions)
37
- ( preReleaseTag !== null ? '-' + preReleaseTag : '' ) ,
38
- ) . to . equal ( version ) ;
43
+ const { major, minor, patch, preReleaseTag } = versionInfo ;
44
+ expect ( version ) . to . equal (
45
+ // istanbul ignore next (Can't be verified on all versions)
46
+ preReleaseTag === null
47
+ ? `${ major } .${ minor } .${ patch } `
48
+ : `${ major } .${ minor } .${ patch } -${ preReleaseTag } ` ,
49
+ ) ;
39
50
} ) ;
40
51
} ) ;
0 commit comments