"""Tests for domain models.""" from datetime import datetime from domain.models import AnalysisJob, AnalysisStatus, Document class TestDocument: def test_default_values(self): doc = Document() assert doc.id # auto-generated UUID assert doc.filename == "" assert doc.content_type is None assert doc.file_size is None assert doc.page_count is None assert doc.storage_path == "" assert isinstance(doc.created_at, datetime) def test_custom_values(self): doc = Document( id="doc-1", filename="test.pdf", content_type="application/pdf", file_size=1024, page_count=5, storage_path="/tmp/test.pdf", ) assert doc.id == "doc-1" assert doc.filename == "test.pdf" assert doc.file_size == 1024 assert doc.page_count == 5 def test_unique_ids(self): d1 = Document() d2 = Document() assert d1.id != d2.id class TestAnalysisJob: def test_default_values(self): job = AnalysisJob() assert job.id assert job.document_id == "" assert job.status == AnalysisStatus.PENDING assert job.content_markdown is None assert job.content_html is None assert job.pages_json is None assert job.error_message is None assert job.started_at is None assert job.completed_at is None def test_mark_running(self): job = AnalysisJob() assert job.started_at is None job.mark_running() assert job.status == AnalysisStatus.RUNNING assert job.started_at is not None def test_mark_completed(self): job = AnalysisJob() job.mark_running() job.mark_completed( markdown="# Title", html="