"""Shared test fixtures."""

import pytest


@pytest.fixture(autouse=True)
def _bypass_auth_middleware(monkeypatch):
    """Bypass API key auth middleware for all tests."""
    from api.auth_middleware import APIKeyAuthMiddleware

    async def _passthrough(self, request, call_next):
        request.state.user = {"email": "test@crystallise.com", "name": "Test"}
        request.state.api_key = "test-key"
        return await call_next(request)

    monkeypatch.setattr(APIKeyAuthMiddleware, "dispatch", _passthrough)


@pytest.fixture
def sample_record():
    return {"study_type": "RCT", "population": "Adults 18+", "outcome": "Mortality"}


@pytest.fixture
def sample_indexer_fields():
    return [
        {
            "name": "study_type",
            "description": "Type of study",
            "data_type_primary": "string",
            "data_type_secondary": "NA",
        },
        {
            "name": "population",
            "description": "Study population",
            "data_type_primary": "string",
            "data_type_secondary": "NA",
        },
        {
            "name": "outcomes",
            "description": "Study outcomes",
            "data_type_primary": "array",
            "data_type_secondary": "string",
        },
    ]
