"""Live integration test for OpenRouterAdapter.

Skipped unless an API key is available (env var or project key file).
"""

import os

import pytest

from markitect.llm.openrouter import OpenRouterAdapter
from markitect.llm.config import resolve_api_key, find_project_root
from markitect.prompts.execution.models import RunConfig, LLMResponse


def _get_api_key():
    root = find_project_root()
    paths = [root / "apikey-openrouter.txt"] if root else []
    return resolve_api_key(env_var="OPENROUTER_API_KEY", key_file_paths=paths)


pytestmark = pytest.mark.skipif(
    _get_api_key() is None,
    reason="No OpenRouter API key available",
)


class TestOpenRouterLive:
    def test_simple_completion(self):
        adapter = OpenRouterAdapter(
            model="anthropic/claude-sonnet-4",
            api_key=_get_api_key(),
        )
        config = RunConfig(temperature=0.0, max_tokens=50)
        resp = adapter.execute_prompt("Reply with exactly: PONG", config)

        assert isinstance(resp, LLMResponse)
        assert len(resp.content) > 0
        assert resp.usage["total_tokens"] > 0
        assert resp.finish_reason in ("stop", "length")
        assert resp.metadata["provider"] == "openrouter"
