test: 更新封面 stub 单测,验证 SVG data URI 占位图
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 41s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m6s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m25s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m25s
AI Code Review / AI Code Review (pull_request) Successful in 1m35s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m46s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m44s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 3m29s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m35s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m29s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 7m41s
CI/CD Pipeline / CI Gate (pull_request) Failing after 7s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 887h18m4s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 887h18m4s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 887h18m5s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 887h25m45s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 887h25m46s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 887h26m29s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 887h26m25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 887h26m27s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 887h26m29s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 887h51m31s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 887h59m12s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 887h59m56s

- 更新 test_cover_type_manual_with_frame_time:断言 SVG data URI + 手动选帧文字
- 更新 test_cover_type_ai_frame:断言 SVG data URI + 封面生成中文字
- 新增 test_stub_returns_svg_data_uri:验证 stub 不含 /api/v1/ 路径
- 新增 test_manual_stub_returns_svg_data_uri:验证 manual 模式 SVG 占位图
This commit is contained in:
CI Bot
2026-08-10 16:00:27 +08:00
parent b155db260a
commit ea953ed92e
+21 -2
View File
@@ -431,7 +431,8 @@ class TestAiCoverService:
result = _call_ai_cover_service("plan1", ["a1"], "manual", frame_time=5.5)
assert result["type"] == "manual"
assert result["frame_time"] == 5.5
assert "5.5" in result["image_url"]
assert result["image_url"].startswith("data:image/svg+xml,")
assert "手动选帧" in result["image_url"]
def test_cover_type_ai_frame(self):
with patch("shared.ai_service.time.sleep"):
@@ -440,7 +441,8 @@ class TestAiCoverService:
assert result["type"] == "ai_frame"
assert result["frame_time"] == 5.0
assert result["confidence"] == 0.9
assert "plan1" in result["image_url"]
assert result["image_url"].startswith("data:image/svg+xml,")
assert "封面生成中" in result["image_url"]
def test_cover_type_ai_regenerate(self):
with patch("shared.ai_service.time.sleep"):
@@ -451,3 +453,20 @@ class TestAiCoverService:
with patch("shared.ai_service.time.sleep"):
result = _call_ai_cover_service("plan1", ["a1"], "ai_frame")
assert 1.0 <= result["frame_time"] <= 10.0
def test_stub_returns_svg_data_uri(self):
"""stub 降级返回 SVG data URI,不含任何后端 API 路径."""
with patch("shared.ai_service.time.sleep"):
result = _call_ai_cover_service("plan1", ["a1"], "ai_frame")
assert result["image_url"].startswith("data:image/svg+xml,")
assert "/api/v1/" not in result["image_url"]
assert "1080" in result["image_url"]
assert "1920" in result["image_url"]
def test_manual_stub_returns_svg_data_uri(self):
"""manual 模式返回 SVG data URI 占位图."""
with patch("shared.ai_service.time.sleep"):
result = _call_ai_cover_service("plan1", ["a1"], "manual", frame_time=3.0)
assert result["image_url"].startswith("data:image/svg+xml,")
assert "/api/v1/" not in result["image_url"]
assert "手动选帧" in result["image_url"]