1+ import { strict as assert } from 'node:assert' ;
2+ import TestUtils from './index' ;
3+
4+ describe ( 'TestUtils' , ( ) => {
5+ describe ( 'parseVersionNumber' , ( ) => {
6+ it ( 'should handle special versions' , ( ) => {
7+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( 'latest' ) , [ Infinity ] ) ;
8+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( 'edge' ) , [ Infinity ] ) ;
9+ } ) ;
10+
11+ it ( 'should parse simple version numbers' , ( ) => {
12+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( '7.4.0' ) , [ 7 , 4 , 0 ] ) ;
13+ } ) ;
14+
15+ it ( 'should handle versions with multiple dashes and prefixes' , ( ) => {
16+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( 'rs-7.4.0-v2' ) , [ 7 , 4 , 0 ] ) ;
17+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( 'rs-7.4.0' ) , [ 7 , 4 , 0 ] ) ;
18+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( '7.4.0-v2' ) , [ 7 , 4 , 0 ] ) ;
19+ } ) ;
20+
21+ it ( 'should handle various version number formats' , ( ) => {
22+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( '10.5' ) , [ 10 , 5 ] ) ;
23+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( '8.0.0' ) , [ 8 , 0 , 0 ] ) ;
24+ assert . deepStrictEqual ( TestUtils . parseVersionNumber ( 'rs-6.2.4-v1' ) , [ 6 , 2 , 4 ] ) ;
25+ } ) ;
26+
27+ it ( 'should throw TypeError for invalid version strings' , ( ) => {
28+ [ '' , 'invalid' , 'rs-' , 'v2' , 'rs-invalid-v2' ] . forEach ( version => {
29+ assert . throws (
30+ ( ) => TestUtils . parseVersionNumber ( version ) ,
31+ TypeError ,
32+ `Expected TypeError for version string: ${ version } `
33+ ) ;
34+ } ) ;
35+ } ) ;
36+ } ) ;
37+ } ) ;
0 commit comments