"""应用级 API 冒烟测试。 使用 FastAPI TestClient 验证健康检查、静态页面与 OpenAPI 文档可访问。 节点注册/实例管理 API 已随单体化移除,不再有对应路由。 """ from fastapi.testclient import TestClient from wov_app.main import app def test_health_and_static() -> None: """验证静态首页、OpenAPI 文档与健康探针均可访问。""" with TestClient(app) as client: root = client.get("/", follow_redirects=False) assert root.status_code == 200 assert "VRSub 字幕生成" in root.text docs = client.get("/docs") assert docs.status_code == 200 response = client.get("/health") assert response.status_code == 200 assert response.json()["service"] == "wov-api" assert response.json()["mode"] == "monolith" def test_node_admin_routes_removed() -> None: """验证节点注册与实例管理路由在单体版中已移除(404/405)。""" with TestClient(app) as client: # GET 落到静态文件挂载后返回 404;POST 对静态挂载返回 405。 assert client.post("/api/admin/nodes", json={}).status_code == 405 assert client.get("/api/admin/nodes").status_code == 404 assert client.get("/api/admin/node-instances").status_code == 404