@@ -62,6 +62,68 @@ describe('UnityVersion', () => {
6262 expect ( UnityVersion . compare ( match , older ) ) . toBeGreaterThan ( 0 ) ;
6363 } ) ;
6464
65+ it ( 'finds latest final release when only major is provided' , ( ) => {
66+ const available = [
67+ '2021.3.5f2' ,
68+ '2021.3.0f1' ,
69+ '2020.3.7f1' ,
70+ '2021.2.9f1'
71+ ] ;
72+
73+ const version = new UnityVersion ( '2021' ) ;
74+ const match = version . findMatch ( available ) ;
75+
76+ expect ( match . version ) . toBe ( '2021.3.5f2' ) ;
77+ } ) ;
78+
79+ it ( 'finds latest minor when using wildcard' , ( ) => {
80+ const available = [
81+ '2021.2.9f1' ,
82+ '2021.3.5f2' ,
83+ '2021.3.4f1'
84+ ] ;
85+
86+ const version = new UnityVersion ( '2021.*' ) ;
87+ const match = version . findMatch ( available ) ;
88+
89+ expect ( match . version ) . toBe ( '2021.3.5f2' ) ;
90+ } ) ;
91+
92+ it ( 'prefers newer patch channels when allowed' , ( ) => {
93+ const available = [
94+ '2021.3.4f1' ,
95+ '2021.3.5p2'
96+ ] ;
97+
98+ const version = new UnityVersion ( '2021.3' ) ;
99+ const match = version . findMatch ( available , [ 'f' , 'p' ] ) ;
100+
101+ expect ( match . version ) . toBe ( '2021.3.5p2' ) ;
102+ } ) ;
103+
104+ it ( 'returns original when no channel candidates exist' , ( ) => {
105+ const available = [
106+ '2021.3.5f2'
107+ ] ;
108+
109+ const version = new UnityVersion ( '2021.3.x' ) ;
110+ const match = version . findMatch ( available , [ 'a' ] ) ;
111+
112+ expect ( match . version ) . toBe ( '2021.3.x' ) ;
113+ } ) ;
114+
115+ it ( 'keeps explicit minor requests when no matching releases are available' , ( ) => {
116+ const available = [
117+ '6000.3.0f1'
118+ ] ;
119+
120+ const version = new UnityVersion ( '6000.0.x' ) ;
121+ const match = version . findMatch ( available ) ;
122+
123+ // When only other minors exist (e.g., 6000.3.*), do not fall back to them.
124+ expect ( match . version ) . toBe ( '6000.0.x' ) ;
125+ } ) ;
126+
65127 it ( 'evaluates caret compatibility with satisfies' , ( ) => {
66128 const baseline = new UnityVersion ( '2021.3.5f1' ) ;
67129 const compatible = new UnityVersion ( '2021.4.0f1' ) ;
0 commit comments