test_crawler_state_dto.py 716 Bytes
from __future__ import annotations

from services.shared.dto import CrawlerStateDTO


def test_crawler_state_dto_builds_response_payload():
    dto = CrawlerStateDTO(
        crawler={"status": "running", "platform": "xiaohongshu"},
        login={"active_task": {"running": False}},
        storage={"history": [{"id": "crawl-1"}]},
        crawler_jobs={"current_job": {"id": "crawl-1"}, "jobs": [{"id": "crawl-1"}]},
    )

    payload = dto.to_response_payload()

    assert payload["crawler"]["status"] == "running"
    assert payload["login"]["active_task"]["running"] is False
    assert payload["storage"]["history"][0]["id"] == "crawl-1"
    assert payload["crawler_jobs"]["current_job"]["id"] == "crawl-1"