from __future__ import annotations import pytest from activity_core.activities import _bind_resolver_result, resolve_context def test_bind_resolver_result_unwraps_single_key_wrapper() -> None: projects = [{"repo": "kaizen-agentic", "has_metrics": True}] assert _bind_resolver_result("projects", {"projects": projects}) == projects def test_bind_resolver_result_keeps_multi_key_summary() -> None: summary = { "repos": [{"repo_slug": "a"}], "stale_count": 1, "total_count": 2, } assert _bind_resolver_result("repos", summary) == summary @pytest.mark.asyncio async def test_resolve_context_unwraps_kaizen_projects(monkeypatch) -> None: class _FakeResolver: def resolve(self, query: str, event: object, params: dict) -> dict: assert query == "discover_kaizen_projects" return {"projects": [{"repo": "pilot", "has_metrics": True}]} import activity_core.context_resolvers # noqa: F401 from activity_core.context_resolvers.base import CONTEXT_RESOLVER_REGISTRY monkeypatch.setitem(CONTEXT_RESOLVER_REGISTRY, "kaizen", lambda: _FakeResolver()) snapshot = await resolve_context( [ { "type": "kaizen", "query": "discover_kaizen_projects", "params": {}, "bind_to": "context.projects", } ] ) assert snapshot == {"projects": [{"repo": "pilot", "has_metrics": True}]}