@@ -320,23 +320,6 @@ func TestDiscoverContractAcrossDrivers(t *testing.T) {
320320 expectedHeader : "Authorization" ,
321321 responseBody : `{"data":[{"id":"gpt-4.1","name":"GPT 4.1"}]}` ,
322322 },
323- {
324- name : "deepseek_discover" ,
325- driver : deepseek .Driver (),
326- buildConfig : func (baseURL string ) provider.RuntimeConfig {
327- return provider.RuntimeConfig {
328- Name : deepseek .DriverName ,
329- Driver : provider .DriverDeepSeek ,
330- BaseURL : baseURL ,
331- APIKeyEnv : "DEEPSEEK_TEST_KEY" ,
332- APIKeyResolver : provider .StaticAPIKeyResolver ("test-key" ),
333- DiscoveryEndpointPath : "/models" ,
334- }
335- },
336- expectedPath : "/models" ,
337- expectedHeader : "Authorization" ,
338- responseBody : `{"data":[{"id":"deepseek-v4","name":"DeepSeek V4"}]}` ,
339- },
340323 {
341324 name : "gemini_discover" ,
342325 driver : gemini .Driver (),
@@ -371,74 +354,6 @@ func TestDiscoverContractAcrossDrivers(t *testing.T) {
371354 expectedHeader : "x-api-key" ,
372355 responseBody : `{"data":[{"id":"claude-3-7-sonnet","display_name":"Claude 3.7 Sonnet"}],"has_more":false}` ,
373356 },
374- {
375- name : "mimo_discover" ,
376- driver : mimo .Driver (),
377- buildConfig : func (baseURL string ) provider.RuntimeConfig {
378- return provider.RuntimeConfig {
379- Name : mimo .DriverName ,
380- Driver : provider .DriverMiMo ,
381- BaseURL : baseURL ,
382- APIKeyEnv : "MIMO_TEST_KEY" ,
383- APIKeyResolver : provider .StaticAPIKeyResolver ("test-key" ),
384- DiscoveryEndpointPath : "/models" ,
385- }
386- },
387- expectedPath : "/models" ,
388- expectedHeader : "Authorization" ,
389- responseBody : `{"data":[{"id":"mimo-v2.5","name":"MiMo V2.5"}]}` ,
390- },
391- {
392- name : "minimax_discover" ,
393- driver : minimax .Driver (),
394- buildConfig : func (baseURL string ) provider.RuntimeConfig {
395- return provider.RuntimeConfig {
396- Name : minimax .DriverName ,
397- Driver : provider .DriverMiniMax ,
398- BaseURL : baseURL ,
399- APIKeyEnv : "MINIMAX_TEST_KEY" ,
400- APIKeyResolver : provider .StaticAPIKeyResolver ("test-key" ),
401- DiscoveryEndpointPath : "/models" ,
402- }
403- },
404- expectedPath : "/models" ,
405- expectedHeader : "Authorization" ,
406- responseBody : `{"data":[{"id":"minimax-m2.7","name":"MiniMax M2.7"}]}` ,
407- },
408- {
409- name : "qwen_discover" ,
410- driver : qwen .Driver (),
411- buildConfig : func (baseURL string ) provider.RuntimeConfig {
412- return provider.RuntimeConfig {
413- Name : qwen .DriverName ,
414- Driver : provider .DriverQwen ,
415- BaseURL : baseURL ,
416- APIKeyEnv : "QWEN_TEST_KEY" ,
417- APIKeyResolver : provider .StaticAPIKeyResolver ("test-key" ),
418- DiscoveryEndpointPath : "/models" ,
419- }
420- },
421- expectedPath : "/models" ,
422- expectedHeader : "Authorization" ,
423- responseBody : `{"data":[{"id":"qwen3","name":"Qwen 3"}]}` ,
424- },
425- {
426- name : "glm_discover" ,
427- driver : glm .Driver (),
428- buildConfig : func (baseURL string ) provider.RuntimeConfig {
429- return provider.RuntimeConfig {
430- Name : glm .DriverName ,
431- Driver : provider .DriverGLM ,
432- BaseURL : baseURL ,
433- APIKeyEnv : "GLM_TEST_KEY" ,
434- APIKeyResolver : provider .StaticAPIKeyResolver ("test-key" ),
435- DiscoveryEndpointPath : "/models" ,
436- }
437- },
438- expectedPath : "/models" ,
439- expectedHeader : "Authorization" ,
440- responseBody : `{"data":[{"id":"glm-5.1","name":"GLM 5.1"}]}` ,
441- },
442357 }
443358
444359 for _ , tt := range testCases {
@@ -467,6 +382,39 @@ func TestDiscoverContractAcrossDrivers(t *testing.T) {
467382 }
468383}
469384
385+ func TestDiscoverUnsupportedDrivers (t * testing.T ) {
386+ testCases := []struct {
387+ name string
388+ driver provider.DriverDefinition
389+ }{
390+ {name : "deepseek_discover_unsupported" , driver : deepseek .Driver ()},
391+ {name : "minimax_discover_unsupported" , driver : minimax .Driver ()},
392+ {name : "qwen_discover_unsupported" , driver : qwen .Driver ()},
393+ {name : "glm_discover_unsupported" , driver : glm .Driver ()},
394+ {name : "mimo_discover_unsupported" , driver : mimo .Driver ()},
395+ }
396+
397+ for _ , tt := range testCases {
398+ tt := tt
399+ t .Run (tt .name , func (t * testing.T ) {
400+ reg := provider .NewRegistry ()
401+ if err := reg .Register (tt .driver ); err != nil {
402+ t .Fatalf ("Register() error = %v" , err )
403+ }
404+ if reg .SupportsDiscovery (tt .driver .Name ) {
405+ t .Fatalf ("expected driver %q to not support discovery" , tt .driver .Name )
406+ }
407+ _ , err := reg .DiscoverModels (context .Background (), provider.RuntimeConfig {Driver : tt .driver .Name })
408+ if err == nil {
409+ t .Fatal ("expected discovery unsupported error, got nil" )
410+ }
411+ if ! provider .IsDiscoveryConfigError (err ) {
412+ t .Fatalf ("expected discovery config error, got %T: %v" , err , err )
413+ }
414+ })
415+ }
416+ }
417+
470418func TestGenerateErrorClassificationAcrossDrivers (t * testing.T ) {
471419 testCases := []struct {
472420 name string
0 commit comments