agent-tui-adapters 1.1.0

CLI and JSON-RPC adapters for agent-tui
Documentation
use super::*;
use crate::common::error_codes;
use crate::usecases::SnapshotUseCaseImpl;
use agent_tui_usecases::usecases::ports::test_support::MockSession;
use agent_tui_usecases::usecases::ports::test_support::MockSessionRepository;
use serde_json::json;
use std::sync::Arc;

#[test]
fn handle_snapshot_uc_rejects_named_region() {
    let repository = Arc::new(
        MockSessionRepository::builder()
            .with_session_handle(Arc::new(MockSession::new("test-session")))
            .build(),
    );
    let usecase = SnapshotUseCaseImpl::new(repository);
    let request = RpcRequest::new(
        1,
        "snapshot".to_string(),
        Some(json!({ "region": "modal" })),
    );

    let response = handle_snapshot_uc(&usecase, request);
    let response_json = serde_json::to_value(response).expect("response should serialize");

    assert_eq!(response_json["error"]["code"], error_codes::INVALID_INPUT);
    assert_eq!(response_json["error"]["data"]["category"], "invalid_input");
    assert_eq!(response_json["error"]["data"]["context"]["field"], "region");
}