@@ -139,14 +139,60 @@ suite('Extension Version Validator', () => {
139139 testIsValidVersion ( '0.11.0' , '^0.10.0' , false ) ;
140140 testIsValidVersion ( '0.11.0' , '*' , true ) ;
141141
142+ // Anything < 1.0.0 is compatible
143+
142144 testIsValidVersion ( '1.0.0' , 'x.x.x' , true ) ;
143- testIsValidVersion ( '1.0.0' , '0.x.x' , false ) ;
145+ testIsValidVersion ( '1.0.0' , '0.x.x' , true ) ;
144146 testIsValidVersion ( '1.0.0' , '0.10.0' , false ) ;
145147 testIsValidVersion ( '1.0.0' , '0.10.2' , false ) ;
146- testIsValidVersion ( '1.0.0' , '^0.10.2' , false ) ;
147- testIsValidVersion ( '1.0.0' , '0.10.x' , false ) ;
148- testIsValidVersion ( '1.0.0' , '^0.10.0' , false ) ;
148+ testIsValidVersion ( '1.0.0' , '^0.10.2' , true ) ;
149+ testIsValidVersion ( '1.0.0' , '0.10.x' , true ) ;
150+ testIsValidVersion ( '1.0.0' , '^0.10.0' , true ) ;
151+ testIsValidVersion ( '1.0.0' , '1.0.0' , true ) ;
152+ testIsValidVersion ( '1.0.0' , '^1.0.0' , true ) ;
153+ testIsValidVersion ( '1.0.0' , '^2.0.0' , false ) ;
149154 testIsValidVersion ( '1.0.0' , '*' , true ) ;
155+
156+ testIsValidVersion ( '1.0.100' , 'x.x.x' , true ) ;
157+ testIsValidVersion ( '1.0.100' , '0.x.x' , true ) ;
158+ testIsValidVersion ( '1.0.100' , '0.10.0' , false ) ;
159+ testIsValidVersion ( '1.0.100' , '0.10.2' , false ) ;
160+ testIsValidVersion ( '1.0.100' , '^0.10.2' , true ) ;
161+ testIsValidVersion ( '1.0.100' , '0.10.x' , true ) ;
162+ testIsValidVersion ( '1.0.100' , '^0.10.0' , true ) ;
163+ testIsValidVersion ( '1.0.100' , '1.0.0' , false ) ;
164+ testIsValidVersion ( '1.0.100' , '^1.0.0' , true ) ;
165+ testIsValidVersion ( '1.0.100' , '^1.0.1' , true ) ;
166+ testIsValidVersion ( '1.0.100' , '^2.0.0' , false ) ;
167+ testIsValidVersion ( '1.0.100' , '*' , true ) ;
168+
169+ testIsValidVersion ( '1.100.0' , 'x.x.x' , true ) ;
170+ testIsValidVersion ( '1.100.0' , '0.x.x' , true ) ;
171+ testIsValidVersion ( '1.100.0' , '0.10.0' , false ) ;
172+ testIsValidVersion ( '1.100.0' , '0.10.2' , false ) ;
173+ testIsValidVersion ( '1.100.0' , '^0.10.2' , true ) ;
174+ testIsValidVersion ( '1.100.0' , '0.10.x' , true ) ;
175+ testIsValidVersion ( '1.100.0' , '^0.10.0' , true ) ;
176+ testIsValidVersion ( '1.100.0' , '1.0.0' , false ) ;
177+ testIsValidVersion ( '1.100.0' , '^1.0.0' , true ) ;
178+ testIsValidVersion ( '1.100.0' , '^1.1.0' , true ) ;
179+ testIsValidVersion ( '1.100.0' , '^1.100.0' , true ) ;
180+ testIsValidVersion ( '1.100.0' , '^2.0.0' , false ) ;
181+ testIsValidVersion ( '1.100.0' , '*' , true ) ;
182+
183+ testIsValidVersion ( '2.0.0' , 'x.x.x' , true ) ;
184+ testIsValidVersion ( '2.0.0' , '0.x.x' , false ) ;
185+ testIsValidVersion ( '2.0.0' , '0.10.0' , false ) ;
186+ testIsValidVersion ( '2.0.0' , '0.10.2' , false ) ;
187+ testIsValidVersion ( '2.0.0' , '^0.10.2' , false ) ;
188+ testIsValidVersion ( '2.0.0' , '0.10.x' , false ) ;
189+ testIsValidVersion ( '2.0.0' , '^0.10.0' , false ) ;
190+ testIsValidVersion ( '2.0.0' , '1.0.0' , false ) ;
191+ testIsValidVersion ( '2.0.0' , '^1.0.0' , false ) ;
192+ testIsValidVersion ( '2.0.0' , '^1.1.0' , false ) ;
193+ testIsValidVersion ( '2.0.0' , '^1.100.0' , false ) ;
194+ testIsValidVersion ( '2.0.0' , '^2.0.0' , true ) ;
195+ testIsValidVersion ( '2.0.0' , '*' , true ) ;
150196 } ) ;
151197
152198 test ( 'isValidExtensionVersion' , ( ) => {
@@ -270,9 +316,9 @@ suite('Extension Version Validator', () => {
270316 testIsValidVersion ( '1.0.0' , '0.x.x' , false ) ; // fails due to lack of specificity
271317 testIsValidVersion ( '1.0.0' , '0.10.0' , false ) ;
272318 testIsValidVersion ( '1.0.0' , '0.10.2' , false ) ;
273- testIsValidVersion ( '1.0.0' , '^0.10.2' , false ) ;
274- testIsValidVersion ( '1.0.0' , '0.10.x' , false ) ;
275- testIsValidVersion ( '1.0.0' , '^0.10.0' , false ) ;
319+ testIsValidVersion ( '1.0.0' , '^0.10.2' , true ) ;
320+ testIsValidVersion ( '1.0.0' , '0.10.x' , true ) ;
321+ testIsValidVersion ( '1.0.0' , '^0.10.0' , true ) ;
276322 testIsValidVersion ( '1.0.0' , '*' , false ) ; // fails due to lack of specificity
277323
278324 testIsValidVersion ( '1.10.0' , 'x.x.x' , false ) ; // fails due to lack of specificity
@@ -283,5 +329,61 @@ suite('Extension Version Validator', () => {
283329 testIsValidVersion ( '1.10.0' , '1.10.x' , true ) ;
284330 testIsValidVersion ( '1.10.0' , '^1.10.0' , true ) ;
285331 testIsValidVersion ( '1.10.0' , '*' , false ) ; // fails due to lack of specificity
332+
333+
334+ // Anything < 1.0.0 is compatible
335+
336+ testIsValidVersion ( '1.0.0' , 'x.x.x' , false ) ; // fails due to lack of specificity
337+ testIsValidVersion ( '1.0.0' , '0.x.x' , false ) ; // fails due to lack of specificity
338+ testIsValidVersion ( '1.0.0' , '0.10.0' , false ) ;
339+ testIsValidVersion ( '1.0.0' , '0.10.2' , false ) ;
340+ testIsValidVersion ( '1.0.0' , '^0.10.2' , true ) ;
341+ testIsValidVersion ( '1.0.0' , '0.10.x' , true ) ;
342+ testIsValidVersion ( '1.0.0' , '^0.10.0' , true ) ;
343+ testIsValidVersion ( '1.0.0' , '1.0.0' , true ) ;
344+ testIsValidVersion ( '1.0.0' , '^1.0.0' , true ) ;
345+ testIsValidVersion ( '1.0.0' , '^2.0.0' , false ) ;
346+ testIsValidVersion ( '1.0.0' , '*' , false ) ; // fails due to lack of specificity
347+
348+ testIsValidVersion ( '1.0.100' , 'x.x.x' , false ) ; // fails due to lack of specificity
349+ testIsValidVersion ( '1.0.100' , '0.x.x' , false ) ; // fails due to lack of specificity
350+ testIsValidVersion ( '1.0.100' , '0.10.0' , false ) ;
351+ testIsValidVersion ( '1.0.100' , '0.10.2' , false ) ;
352+ testIsValidVersion ( '1.0.100' , '^0.10.2' , true ) ;
353+ testIsValidVersion ( '1.0.100' , '0.10.x' , true ) ;
354+ testIsValidVersion ( '1.0.100' , '^0.10.0' , true ) ;
355+ testIsValidVersion ( '1.0.100' , '1.0.0' , false ) ;
356+ testIsValidVersion ( '1.0.100' , '^1.0.0' , true ) ;
357+ testIsValidVersion ( '1.0.100' , '^1.0.1' , true ) ;
358+ testIsValidVersion ( '1.0.100' , '^2.0.0' , false ) ;
359+ testIsValidVersion ( '1.0.100' , '*' , false ) ; // fails due to lack of specificity
360+
361+ testIsValidVersion ( '1.100.0' , 'x.x.x' , false ) ; // fails due to lack of specificity
362+ testIsValidVersion ( '1.100.0' , '0.x.x' , false ) ; // fails due to lack of specificity
363+ testIsValidVersion ( '1.100.0' , '0.10.0' , false ) ;
364+ testIsValidVersion ( '1.100.0' , '0.10.2' , false ) ;
365+ testIsValidVersion ( '1.100.0' , '^0.10.2' , true ) ;
366+ testIsValidVersion ( '1.100.0' , '0.10.x' , true ) ;
367+ testIsValidVersion ( '1.100.0' , '^0.10.0' , true ) ;
368+ testIsValidVersion ( '1.100.0' , '1.0.0' , false ) ;
369+ testIsValidVersion ( '1.100.0' , '^1.0.0' , true ) ;
370+ testIsValidVersion ( '1.100.0' , '^1.1.0' , true ) ;
371+ testIsValidVersion ( '1.100.0' , '^1.100.0' , true ) ;
372+ testIsValidVersion ( '1.100.0' , '^2.0.0' , false ) ;
373+ testIsValidVersion ( '1.100.0' , '*' , false ) ; // fails due to lack of specificity
374+
375+ testIsValidVersion ( '2.0.0' , 'x.x.x' , false ) ; // fails due to lack of specificity
376+ testIsValidVersion ( '2.0.0' , '0.x.x' , false ) ; // fails due to lack of specificity
377+ testIsValidVersion ( '2.0.0' , '0.10.0' , false ) ;
378+ testIsValidVersion ( '2.0.0' , '0.10.2' , false ) ;
379+ testIsValidVersion ( '2.0.0' , '^0.10.2' , false ) ;
380+ testIsValidVersion ( '2.0.0' , '0.10.x' , false ) ;
381+ testIsValidVersion ( '2.0.0' , '^0.10.0' , false ) ;
382+ testIsValidVersion ( '2.0.0' , '1.0.0' , false ) ;
383+ testIsValidVersion ( '2.0.0' , '^1.0.0' , false ) ;
384+ testIsValidVersion ( '2.0.0' , '^1.1.0' , false ) ;
385+ testIsValidVersion ( '2.0.0' , '^1.100.0' , false ) ;
386+ testIsValidVersion ( '2.0.0' , '^2.0.0' , true ) ;
387+ testIsValidVersion ( '2.0.0' , '*' , false ) ; // fails due to lack of specificity
286388 } ) ;
287389} ) ;
0 commit comments