use alpha_id::pipeline::Pipeline; use alpha_id::model::{Config, Filter, IndexStatus, Mode}; #[test] fn hybrid_degrades_to_lexical_when_ionos_unreachable() { let mut cfg = Config::load("config/default.toml").unwrap(); cfg.ionos_base_url = "http://127.0.0.1:1".into(); // refused let p = Pipeline::load(&cfg).unwrap(); let res = p.suggest("Diabetes mellitus Typ 2", Mode::Hybrid, &Filter::default(), 10); assert!(res.diagnostics.degraded); // fell back assert!(!res.suggestions.is_empty()); // still answered assert!(res.suggestions.iter().any(|s| s.icd_code.starts_with("E11"))); // Foil: a transient IONOS degrade leaves the index structurally Ok — // distinct from a corpus/model mismatch, which would be IndexStatus::Mismatch. assert_eq!(res.diagnostics.index_status, IndexStatus::Ok); }