// SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0

//! Tests request with the token_data in nvext used for the EPP-aware Gateway integration. When the backend_instance_id is in the request along with the token_data the tokenization will be skipped in the preprocesor.rs

use anyhow::Result;
use dynamo_llm::protocols::openai::chat_completions::NvCreateChatCompletionRequest;

#[test]
fn test_request_json_structure() -> Result<()> {
    // Test that the JSON structure matches what clients will send

    let json_input = r#"{
        "model": "qwen",
        "messages": [{"role": "user", "content": "Hello"}],
        "nvext": {
            "backend_instance_id": 12345,
            "token_data": [15496, 1917, 264]
        }
    }"#;

    let request: NvCreateChatCompletionRequest = serde_json::from_str(json_input)?;

    // Verify parsing
    assert!(request.nvext.is_some());
    let nvext = request.nvext.as_ref().unwrap();
    assert_eq!(nvext.backend_instance_id, Some(12345));
    assert_eq!(nvext.token_data, Some(vec![15496, 1917, 264]));

    Ok(())
}
