import json import shutil from pathlib import Path import pytest from declaude import DataLoader, MappingManager, SiteBuilder from declaude.cli import main FIXTURE = Path(__file__).parent / "fixtures" / "backup" @pytest.fixture def archive(tmp_path): loader = DataLoader(FIXTURE) loader.load() mapping = MappingManager(tmp_path / "mapping.json") mapping.load() mapping.assign("c-1", "p-1") SiteBuilder(tmp_path / "out", loader, mapping).build_all() return tmp_path / "out" def test_full_build_creates_all_pages(archive): for rel in ("index.html", "all_conversations.html", "projects/p-1/index.html", "conversations/c-1.html", "conversations/c-2.html", "conversations/c-3.html", "assets/style.css", "assets/app.js"): assert (archive / rel).is_file(), rel def test_conversation_page_content(archive): page = (archive / "conversations" / "c-1.html").read_text(encoding="utf-8") assert "Нормализация до 3НФ" in page assert "