from fastapi import FastAPI from httpx import AsyncClient from starlette import status from zangramru.web.api.puzzles.schema import PuzzleOutputDTO async def test_get_random_puzzle(fastapi_app: FastAPI, client: AsyncClient) -> None: """ Tests that echo route works. :param fastapi_app: current application. :param client: client for the app. """ url = fastapi_app.url_path_for("random_puzzle") response = await client.get(url) assert response.status_code == status.HTTP_200_OK dto = PuzzleOutputDTO.model_validate(response.json()) assert sum(len(row) for row in dto.board) == 16 assert len(dto.solutions) >= 10