@@ -295,6 +295,48 @@ mod tests {
295295        } 
296296    } 
297297
298+     #[ tokio:: test]  
299+     async  fn  test_provider_detection ( )  { 
300+         use  crate :: models:: { LocalProvider ,  ModelValidator } ; 
301+ 
302+         println ! ( "🧪 Testing provider detection system..." ) ; 
303+ 
304+         let  validator = ModelValidator :: new ( ) ; 
305+ 
306+         // Test provider detection for common endpoints 
307+         let  ollama_provider = validator. detect_provider_type ( "localhost:11434" ) . await ; 
308+         let  lmstudio_provider = validator. detect_provider_type ( "localhost:1234" ) . await ; 
309+         let  custom_provider = validator. detect_provider_type ( "localhost:8080" ) . await ; 
310+ 
311+         println ! ( "Provider detection results:" ) ; 
312+         println ! ( "  Ollama (11434): {:?}" ,  ollama_provider) ; 
313+         println ! ( "  LM Studio (1234): {:?}" ,  lmstudio_provider) ; 
314+         println ! ( "  Custom (8080): {:?}" ,  custom_provider) ; 
315+ 
316+         // Test fetching local models if Ollama is available 
317+         if  ollama_provider == LocalProvider :: Ollama  { 
318+             println ! ( "Testing local model fetching..." ) ; 
319+             match  validator. fetch_local_models ( "localhost:11434" ) . await  { 
320+                 Ok ( models)  => { 
321+                     println ! ( "✅ Successfully fetched {} local models" ,  models. len( ) ) ; 
322+                     for  model in  models. iter ( ) . take ( 3 )  { 
323+                         println ! ( "  - {} ({:?}, {})" ,  model. name,  model. provider,  model. size) ; 
324+                     } 
325+                 } 
326+                 Err ( e)  => { 
327+                     println ! ( 
328+                         "⚠️ Could not fetch local models (Ollama not running): {}" , 
329+                         e
330+                     ) ; 
331+                 } 
332+             } 
333+         }  else  { 
334+             println ! ( "⚠️ Ollama not detected, skipping local model test" ) ; 
335+         } 
336+ 
337+         println ! ( "✅ Provider detection test completed!" ) ; 
338+     } 
339+ 
298340    #[ test]  
299341    fn  test_api_key_truncation ( )  { 
300342        // Test the API key display formatting (simulating the settings modal function) 
0 commit comments