import pytest
from pydantic import ValidationError

from src.domain.search.contract import SearchRequest


def test_search_request_normalizes_and_deduplicates_entities():
    request = SearchRequest(query="  green   valley ", entity_keys=["post", "post", "page"])
    assert request.query == "green valley"
    assert request.entity_keys == ["post", "page"]


def test_search_request_rejects_empty_query():
    with pytest.raises(ValidationError):
        SearchRequest(query="")
