"""Regression tests for A2A client-tool schema registration."""

from __future__ import annotations

import json

from plugins.platforms.a2a import tools as a2a_tools
from tools import tool_search
from tools.registry import ToolRegistry


def test_a2a_call_schema_round_trips_through_tool_describe(monkeypatch):
    registry = ToolRegistry()

    class _Context:
        def register_tool(self, name, toolset, schema, handler, **kwargs):
            registry.register(
                name=name,
                toolset=toolset,
                schema=schema,
                handler=handler,
                **kwargs,
            )

    a2a_tools.register_tools(_Context())
    definitions = registry.get_definitions({"a2a_call"})
    monkeypatch.setattr(
        tool_search,
        "is_deferrable_tool_name",
        lambda name: name == "a2a_call",
    )

    described = json.loads(
        tool_search.dispatch_tool_describe(
            {"name": "a2a_call"},
            current_tool_defs=definitions,
        )
    )

    assert described["description"]
    assert described["parameters"]["required"] == ["agent", "message"]
    assert set(described["parameters"]["properties"]) == {
        "agent",
        "message",
        "context_id",
    }
