import json
import tempfile
import unittest
from pathlib import Path

from agent_gui.config import find_agent, load_agents


class ConfigTests(unittest.TestCase):
    def test_missing_config_returns_defaults(self):
        agents = load_agents("/tmp/agent-gui-missing-config.json")
        self.assertTrue(any(agent["id"] == "echo" for agent in agents))

    def test_load_enabled_agents_only(self):
        with tempfile.TemporaryDirectory() as tmp:
            path = Path(tmp) / "agents.json"
            path.write_text(json.dumps({"agents": [
                {"id": "a", "enabled": True},
                {"id": "b", "enabled": False},
            ]}), encoding="utf-8")
            agents = load_agents(path)
            self.assertEqual([agent["id"] for agent in agents], ["a"])

    def test_find_agent(self):
        agent = find_agent([{"id": "x"}], "x")
        self.assertEqual(agent["id"], "x")
        with self.assertRaises(KeyError):
            find_agent([], "x")


if __name__ == "__main__":
    unittest.main()
