from http import HTTPStatus import shutil from info_tech_canon.api import _route from info_tech_canon.service import DEFAULT_INFOSPACE_ROOT, generate_indexes def test_api_route_inspect() -> None: status, payload = _route("/inspect", {}, None) assert status == HTTPStatus.OK assert payload["ok"] is True assert payload["infospace"]["slug"] == "canon" def test_api_route_validate() -> None: status, payload = _route("/validate", {}, None) assert status == HTTPStatus.OK assert payload["ok"] is True def test_api_route_review_kit() -> None: status, payload = _route("/review-kit", {}, None) assert status == HTTPStatus.OK assert payload["ok"] is True assert payload["review_kit"]["id"] == "review-kit/alignment" def test_api_route_alignment_template() -> None: status, payload = _route("/alignment-template", {}, None) assert status == HTTPStatus.OK assert payload["ok"] is True assert "## Current Fit" in payload["content"] def test_api_route_unknown_endpoint() -> None: status, payload = _route("/missing", {}, None) assert status == HTTPStatus.NOT_FOUND assert payload["ok"] is False assert payload["error"]["code"] == "not_found" def test_api_route_reads_generated_view(tmp_path) -> None: root = tmp_path / "infospace" shutil.copytree(DEFAULT_INFOSPACE_ROOT, root) generate_indexes(root) status, payload = _route("/views/by-standard.md", {}, root) assert status == HTTPStatus.OK assert payload["ok"] is True assert payload["generated"] is True assert "# By Standard" in payload["content"] def test_api_route_validates_small_saas_profile() -> None: status, payload = _route("/profiles/small-saas/validate", {}, None) assert status == HTTPStatus.OK assert payload["ok"] is True assert payload["details"]["artifact_count"] == 14