relay-knowledge 1.1.16

Graph-database-based knowledge graph project.
Documentation
use super::*;
use crate::model_provider::profile_config::profile_response;
use crate::retrieval::ReadModelBackendConfig;

#[test]
fn redacts_secret_profile_fields() {
    let profile = StoredModelProfile::from_save_request(
        ModelProfileSaveRequest {
            provider: ModelProviderKind::OpenAiCompatible,
            model: "gpt-test".to_owned(),
            base_url: Some("https://example.test/v1".to_owned()),
            api_key: Some("secret".to_owned()),
            clear_api_key: false,
            headers: vec![ModelRequestHeader {
                name: "x-api-key".to_owned(),
                value: Some("hidden".to_owned()),
                secret: true,
                configured: false,
            }],
            ssl_verify: None,
            context_window: None,
            max_tokens: None,
            temperature: default_temperature(),
            top_p: default_top_p(),
            connect_timeout_seconds: default_connect_timeout_seconds(),
            capabilities: None,
            fallback_policy_id: None,
            fallback_priority: 0,
            catalog_provider_id: None,
            catalog_provider_name: None,
            catalog_model_name: None,
            is_default: true,
        },
        None,
    )
    .expect("profile should validate");

    let view = profile.to_view("default", true);

    assert!(view.api_key_configured);
    assert_eq!(view.headers[0].value, None);
    assert!(view.headers[0].configured);
}

#[test]
fn local_retrieval_does_not_create_runtime_profile() {
    let retrieval = ReadModelBackendConfig::local();
    let response = profile_response(None, &retrieval);

    assert!(response.profiles.is_empty());
    assert_eq!(response.default_profile, None);
}