Files
fil/crates/kreuzberg-cli/tests/config_env_overrides_test.rs

47 lines
1.6 KiB
Rust
Raw Normal View History

2026-06-01 23:40:55 +02:00
//! Regression test for issue #773.
//! Validates that environment variable overrides are correctly applied during configuration loading.
use kreuzberg::{EmbeddingModelType, ExtractionConfig};
#[test]
fn test_regression_773_env_override_loading() {
let mut config = ExtractionConfig::default();
if let Some(ref ocr) = config.ocr {
assert_ne!(ocr.language, "fra");
}
unsafe { std::env::set_var("KREUZBERG_OCR_LANGUAGE", "fra") };
config.apply_env_overrides().expect("Failed to apply overrides");
unsafe { std::env::remove_var("KREUZBERG_OCR_LANGUAGE") };
let ocr = config
.ocr
.expect("OCR config should be Some when KREUZBERG_OCR_LANGUAGE is set");
assert_eq!(ocr.language, "fra");
}
#[test]
fn test_regression_773_vlm_embedding_env_override() {
let mut config = ExtractionConfig::default();
unsafe { std::env::set_var("KREUZBERG_VLM_EMBEDDING_MODEL", "openai/text-embedding-3-small") };
config
.apply_env_overrides()
.expect("Failed to apply environment overrides");
unsafe { std::env::remove_var("KREUZBERG_VLM_EMBEDDING_MODEL") };
let chunking = config
.chunking
.expect("Chunking should be enabled when VLM embedding is set");
let embedding = chunking.embedding.expect("Embedding should be configured");
match embedding.model {
EmbeddingModelType::Llm { llm } => {
assert_eq!(llm.model, "openai/text-embedding-3-small");
assert!(llm.api_key.is_none());
}
_ => panic!("Expected Llm embedding model type"),
}
}