feat(beads): integrate Beads Mode backend, MCP tools, and GUI support
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
import pytest
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
from src import mcp_client
|
||||
from src import beads_client
|
||||
|
||||
def test_bd_mcp_tools(tmp_path: Path):
|
||||
# Setup mock workspace
|
||||
workspace_dir = tmp_path / "workspace"
|
||||
workspace_dir.mkdir()
|
||||
|
||||
# Configure mcp client allowlist
|
||||
mcp_client.configure([{"path": str(workspace_dir)}], extra_base_dirs=[str(workspace_dir)])
|
||||
|
||||
# Initialize Beads repo manually to simulate state
|
||||
bclient = beads_client.BeadsClient(workspace_dir)
|
||||
bclient.init_repo()
|
||||
|
||||
# Tools should be registered
|
||||
tools = mcp_client.get_tool_schemas()
|
||||
tool_names = [t["name"] for t in tools]
|
||||
assert "bd_create" in tool_names
|
||||
assert "bd_update" in tool_names
|
||||
assert "bd_list" in tool_names
|
||||
|
||||
# Test bd_create
|
||||
resp = mcp_client.dispatch("bd_create", {"title": "First Bead", "description": "This is a test bead"})
|
||||
assert "bead-1" in resp
|
||||
|
||||
# Test bd_list
|
||||
list_resp = mcp_client.dispatch("bd_list", {})
|
||||
assert "bead-1" in list_resp
|
||||
assert "First Bead" in list_resp
|
||||
|
||||
# Test bd_ready
|
||||
ready_resp = mcp_client.dispatch("bd_ready", {})
|
||||
assert ready_resp == "READY"
|
||||
|
||||
# Test bd_update
|
||||
update_resp = mcp_client.dispatch("bd_update", {"bead_id": "bead-1", "status": "completed"})
|
||||
assert "bead-1" in update_resp
|
||||
|
||||
# Test bd_list after update
|
||||
list_resp2 = mcp_client.dispatch("bd_list", {})
|
||||
assert "Status: completed" in list_resp2
|
||||
Reference in New Issue
Block a user