@@ -139,7 +139,7 @@ suite('Model Selection (resolveModel)', () => {
139139 } ) ;
140140} ) ;
141141
142- suite ( 'pickConcreteModel (auto resolution )' , ( ) => {
142+ suite ( 'pickConcreteModel (legacy — no longer used in main flow )' , ( ) => {
143143
144144 test ( 'returns specific model when preferredId is not auto' , ( ) => {
145145 const result = pickConcreteModel ( { models : ALL_MODELS , preferredId : HAIKU . id } ) ;
@@ -176,3 +176,37 @@ suite('pickConcreteModel (auto resolution)', () => {
176176 assert . strictEqual ( result . id , OPUS . id , 'Should pick first model when no auto in list' ) ;
177177 } ) ;
178178} ) ;
179+
180+ suite ( 'Direct model lookup (selectCopilotModel fix)' , ( ) => {
181+
182+ test ( 'auto resolved ID selects auto model — NOT premium' , ( ) => {
183+ const models = ALL_WITH_AUTO ;
184+ const resolvedId = AUTO_MODEL_ID ;
185+
186+ const selected = models . find ( m => m . id === resolvedId ) ;
187+
188+ assert . ok ( selected , 'Auto model must exist in list' ) ;
189+ assert . strictEqual ( selected . id , AUTO_MODEL_ID , 'Must use auto model directly' ) ;
190+ assert . notStrictEqual ( selected . id , OPUS . id , 'Must NOT resolve to premium opus model' ) ;
191+ } ) ;
192+
193+ test ( 'specific model ID selects that exact model' , ( ) => {
194+ const models = ALL_WITH_AUTO ;
195+ const resolvedId = HAIKU . id ;
196+
197+ const selected = models . find ( m => m . id === resolvedId ) ;
198+
199+ assert . ok ( selected , 'Haiku model must be found' ) ;
200+ assert . strictEqual ( selected . id , HAIKU . id ) ;
201+ assert . strictEqual ( selected . name , HAIKU . name ) ;
202+ } ) ;
203+
204+ test ( 'nonexistent model ID returns undefined' , ( ) => {
205+ const models = ALL_WITH_AUTO ;
206+ const resolvedId = 'nonexistent' ;
207+
208+ const selected = models . find ( m => m . id === resolvedId ) ;
209+
210+ assert . strictEqual ( selected , undefined , 'Nonexistent model must not match' ) ;
211+ } ) ;
212+ } ) ;
0 commit comments