# Copyright 2026 Guildhouse Dev # SPDX-License-Identifier: Apache-2.0 """Tests for Intune MCP tools.""" import pytest from httpx import AsyncClient, ASGITransport from gsap_broker.app import app @pytest.fixture async def client(): async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as c: yield c @pytest.mark.asyncio async def test_mcp_tools_list_includes_intune(client): """MCP tools/list should include Intune tools.""" resp = await client.post("/mcp", json={ "jsonrpc": "2.0", "method": "tools/list", "id": 1, }) assert resp.status_code == 200 tools = resp.json()["result"]["tools"] tool_names = [t["name"] for t in tools] assert "list_devices" in tool_names assert "get_device_compliance" in tool_names assert "sync_device" in tool_names assert "remote_lock" in tool_names @pytest.mark.asyncio async def test_mcp_intune_tool_without_connector(client): """Intune MCP tool should return error when connector not enabled.""" resp = await client.post("/mcp", json={ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "list_devices", "arguments": {}, }, "id": 2, }) assert resp.status_code == 200 content = resp.json()["result"]["content"][0]["text"] assert "not enabled" in content.lower() or "error" in content.lower()