import pytest from src.core.generator import generate_docs from pathlib import Path def test_generate_html(tmp_path, sample_spec): output = tmp_path / "test.html" generate_docs(str(sample_spec), str(output), 'html') assert output.exists() html = output.read_text() assert '' in html assert 'API Documentation' in html def test_generate_markdown(tmp_path, sample_spec): output = tmp_path / "test.md" generate_docs(str(sample_spec), str(output), 'markdown') assert output.exists() md = output.read_text() assert '# API Documentation' in md def test_generate_json(tmp_path, sample_spec): output = tmp_path / "test.json" generate_docs(str(sample_spec), str(output), 'json') assert output.exists() import json data = json.loads(output.read_text()) assert 'title' in data assert 'endpoints' in data def test_invalid_spec(tmp_path): invalid_spec = tmp_path / "invalid.json" invalid_spec.write_text('{"invalid": "spec"}') with pytest.raises(ValueError): generate_docs(str(invalid_spec), 'html')