@@ -27,6 +27,34 @@ describe('SemVerUtils', () => {
27
27
expect ( SemVerUtils . extractVersion ( '3.1.0-beta.5' ) ) . toBe ( '3.1.0' )
28
28
} )
29
29
30
+ it ( 'should extract version from strings with version range operators' , ( ) => {
31
+ expect ( SemVerUtils . extractVersion ( '^1.8.3' ) ) . toBe ( '1.8.3' )
32
+ expect ( SemVerUtils . extractVersion ( '~1.7.1' ) ) . toBe ( '1.7.1' )
33
+ expect ( SemVerUtils . extractVersion ( '>=1.5.0' ) ) . toBe ( '1.5.0' )
34
+ expect ( SemVerUtils . extractVersion ( '<=2.0.0' ) ) . toBe ( '2.0.0' )
35
+ expect ( SemVerUtils . extractVersion ( '<1.9.0' ) ) . toBe ( '1.9.0' )
36
+ expect ( SemVerUtils . extractVersion ( '>1.6.5' ) ) . toBe ( '1.6.5' )
37
+ expect ( SemVerUtils . extractVersion ( '>=1.x.x' ) ) . toBe ( '1' )
38
+ expect ( SemVerUtils . extractVersion ( '<=2.x.x' ) ) . toBe ( '2' )
39
+ expect ( SemVerUtils . extractVersion ( '^1.7' ) ) . toBe ( '1.7' )
40
+ expect ( SemVerUtils . extractVersion ( '~2' ) ) . toBe ( '2' )
41
+ } )
42
+
43
+ it ( 'should extract version from strings with multiple operators and whitespace' , ( ) => {
44
+ expect ( SemVerUtils . extractVersion ( '^ 1.8.3' ) ) . toBe ( '1.8.3' )
45
+ expect ( SemVerUtils . extractVersion ( '>= 1.5.0' ) ) . toBe ( '1.5.0' )
46
+ expect ( SemVerUtils . extractVersion ( '<= 2.0.0' ) ) . toBe ( '2.0.0' )
47
+ expect ( SemVerUtils . extractVersion ( '< 1.9.0' ) ) . toBe ( '1.9.0' )
48
+ expect ( SemVerUtils . extractVersion ( '> 1.6.5' ) ) . toBe ( '1.6.5' )
49
+ } )
50
+
51
+ it ( 'should extract version from strings with operators and pre-release suffixes' , ( ) => {
52
+ expect ( SemVerUtils . extractVersion ( '^1.8.3-beta.1' ) ) . toBe ( '1.8.3' )
53
+ expect ( SemVerUtils . extractVersion ( '~1.7.1-canary.5' ) ) . toBe ( '1.7.1' )
54
+ expect ( SemVerUtils . extractVersion ( '>=1.5.0-alpha.2' ) ) . toBe ( '1.5.0' )
55
+ expect ( SemVerUtils . extractVersion ( '<=2.0.0-rc.1' ) ) . toBe ( '2.0.0' )
56
+ } )
57
+
30
58
it ( 'should handle edge cases' , ( ) => {
31
59
expect ( SemVerUtils . extractVersion ( '' ) ) . toBe ( null )
32
60
expect ( SemVerUtils . extractVersion ( 'no-version-here' ) ) . toBe ( null )
0 commit comments