fix(api): 讓週報 preview 顯示資料源沉澱
This commit is contained in:
@@ -360,6 +360,11 @@ class WeeklyReportResponse(BaseModel):
|
||||
ai_success_rate: float = Field(description="AI 成功率 (%)")
|
||||
commits_count: int = Field(description="本週 Commits 數")
|
||||
deploy_count: int = Field(description="本週部署次數")
|
||||
source_ok_count: int = Field(default=0, description="報表資料源可讀數")
|
||||
source_total_count: int = Field(default=0, description="報表資料源總數")
|
||||
source_confidence_percent: int = Field(default=0, description="報表資料源可信度")
|
||||
source_gap_ids: list[str] = Field(default_factory=list, description="報表資料源缺口工作項")
|
||||
formatted_preview: str = Field(default="", description="Telegram HTML no-send preview")
|
||||
|
||||
|
||||
@router.get(
|
||||
@@ -385,6 +390,11 @@ async def preview_weekly_report(
|
||||
ai_success_rate=report.ai_success_rate,
|
||||
commits_count=report.commits_count,
|
||||
deploy_count=report.deploy_count,
|
||||
source_ok_count=report.report_source_ok_count,
|
||||
source_total_count=report.report_source_total_count,
|
||||
source_confidence_percent=report.report_source_confidence_percent,
|
||||
source_gap_ids=report.report_source_gap_ids,
|
||||
formatted_preview=report.format(),
|
||||
)
|
||||
|
||||
|
||||
|
||||
27
apps/api/tests/test_weekly_report_preview_api.py
Normal file
27
apps/api/tests/test_weekly_report_preview_api.py
Normal file
@@ -0,0 +1,27 @@
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
from src.main import app
|
||||
|
||||
|
||||
def test_weekly_report_preview_exposes_source_health_no_send_preview():
|
||||
client = TestClient(app)
|
||||
response = client.get("/api/v1/stats/weekly/preview")
|
||||
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert "week_range" in data
|
||||
assert "alert_total" in data
|
||||
assert "source_ok_count" in data
|
||||
assert "source_total_count" in data
|
||||
assert "source_confidence_percent" in data
|
||||
assert "source_gap_ids" in data
|
||||
assert "formatted_preview" in data
|
||||
assert data["source_total_count"] >= 0
|
||||
assert data["source_ok_count"] >= 0
|
||||
|
||||
preview = data["formatted_preview"]
|
||||
assert "報表資料信任度" in preview
|
||||
if data["source_total_count"] > 0:
|
||||
assert "報表資料源 / 沉澱" in preview
|
||||
assert f"來源: <code>{data['source_ok_count']}/{data['source_total_count']}</code>" in preview
|
||||
assert "不自動改排程" in preview
|
||||
Reference in New Issue
Block a user