mirror of
https://github.com/mgeeky/decode-spam-headers.git
synced 2026-02-22 05:23:31 +01:00
35 lines
1.0 KiB
Python
35 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
import pytest
|
|
from httpx import ASGITransport, AsyncClient
|
|
|
|
from app.engine.scanner_registry import ScannerRegistry
|
|
from app.main import app
|
|
|
|
|
|
@pytest.mark.anyio
|
|
async def test_get_tests_returns_all_registered_tests() -> None:
|
|
registry = ScannerRegistry()
|
|
expected = registry.list_tests()
|
|
expected_lookup = {test.id: test.name for test in expected}
|
|
|
|
async with AsyncClient(
|
|
transport=ASGITransport(app=app),
|
|
base_url="http://test",
|
|
) as client:
|
|
response = await client.get("/api/tests")
|
|
|
|
assert response.status_code == 200
|
|
|
|
payload = response.json()
|
|
assert isinstance(payload, dict)
|
|
assert payload["totalCount"] == len(expected_lookup)
|
|
|
|
tests_payload = payload["tests"]
|
|
assert isinstance(tests_payload, list)
|
|
assert len(tests_payload) == len(expected_lookup)
|
|
|
|
response_lookup = {item["id"]: item["name"] for item in tests_payload}
|
|
assert len(response_lookup) == len(expected_lookup)
|
|
assert response_lookup == expected_lookup
|