relay-knowledge 1.1.17

Graph-database-based knowledge graph project.
Documentation
use axum::http::{HeaderMap, HeaderValue};

use super::*;

#[test]
fn protocol_version_header_distinguishes_optional_missing_and_invalid_values() {
    let mut headers = HeaderMap::new();

    assert_eq!(validate_protocol_version_header(&headers, false), Ok(()));
    assert_eq!(
        validate_protocol_version_header(&headers, true),
        Err(StatusCode::BAD_REQUEST)
    );
    headers.insert(
        MCP_PROTOCOL_VERSION_HEADER,
        HeaderValue::from_static(MCP_PROTOCOL_VERSION),
    );
    assert_eq!(validate_protocol_version_header(&headers, true), Ok(()));
}

#[test]
fn exact_accept_rejection_overrides_a_positive_wildcard() {
    let ranges = [
        AcceptRange::parse("*/*; q=1").expect("wildcard range"),
        AcceptRange::parse("application/json; q=0").expect("exact range"),
        AcceptRange::parse("text/event-stream").expect("event range"),
    ];

    assert!(!accepts_media_type(&ranges, "application", "json"));
    assert!(accepts_media_type(&ranges, "text", "event-stream"));
    assert!(is_loopback_origin("http://[::1]:8791/mcp"));
    assert!(!is_loopback_origin("https://example.com/mcp"));
}