Files
Jyotisha/tests/test_daily_and_rectification_entrypoints.py
T
jesse-uxandGrok (agent loop) 1f9947a0d7 删除三个无调用方接口和约 3000 行前端死代码
关掉未登录就会触发约 20 秒计算的入口,并记下 BUG-1342。普通导出的逐字节锁保留。自测 tsc 0 错,lint 0 error / 123 warning,改到的前端测试 fail=0,两份 Python 测试通过,test:db 失败 13 条与 Windows 已知清单一致。

Co-Authored-By: Grok (agent loop)
2026-10-14 08:39:32 +08:00

73 lines
3.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from pathlib import Path
PAGE = Path("frontend/src/app/(app)/page.tsx")
STARTER_HOME = Path("frontend/src/components/starter-home.tsx")
HOME_CLOUD = Path("frontend/src/lib/home-cloud-sync.ts")
RECTIFICATION_HOOK = Path("frontend/src/hooks/use-rectification-surface.ts")
DAILY_ROUTE = Path("frontend/src/app/api/daily-starlanguage/route.ts")
RECTIFICATION_ROUTE = Path("frontend/src/app/api/birth-rectification/route.ts")
def _home_entrypoint_surface() -> str:
parts = [PAGE, STARTER_HOME, HOME_CLOUD]
if RECTIFICATION_HOOK.exists():
parts.append(RECTIFICATION_HOOK)
return "".join(path.read_text(encoding="utf-8") for path in parts)
def test_daily_starlanguage_entrypoint_is_productized() -> None:
# 原值:断言 daily-starlanguage-card(空状态大卡)
# 新值:StarterEntries 的 starter-entry pill + startDailyStarlanguageConsultation
# 原因:62903b7a 已把卡片改成问候 + 输入框 + 两枚 pill,全仓已无该类名
source = _home_entrypoint_surface()
assert "今日星语" in source
assert "fetchDailyStarlanguage" in source
assert "starter-entry" in source
assert "startDailyStarlanguageConsultation" in source
assert "从今日问起" in source
assert "今天的星语还没写出来。" in source
assert "daily-starlanguage-card" not in source
assert "buildDailyStarlanguageCard" not in source
assert "点这里" not in source
assert "不会用通用文案顶替" not in source
def test_daily_starlanguage_api_declares_honest_source_boundary() -> None:
source = DAILY_ROUTE.read_text(encoding="utf-8")
assert "status: \"ok\"" in source
assert "/api/daily_guidance" in source
assert "/api/chart" not in source
assert "/api/transit" not in source
assert "exploratory_unvalidated" in source
assert "not_deterministic_prediction" in source
def test_birth_time_rectification_entrypoint_is_productized() -> None:
# 原值:断言 birth-rectification-card
# 新值:同一套 starter-entry pill + openRectificationFromHomepage
# 原因:同上,卡片入口已删除
# 原值(2):首页 starter-entry pill + openRectificationFromHomepage
# 新值(2):首页无校正 pill;入口是对话里的提议卡 → openRectificationFromChat
# 原因(2):BUG-1247(TASK-rectification-in-chat-step1-20261006 P3/C1)
source = _home_entrypoint_surface()
assert "生时校正" in source
assert "starter-entry" in source
assert "openRectificationFromChat" in source
assert "openRectificationFromHomepage" not in source
assert "birth-rectification-card" not in source
def test_birth_rectification_api_proxies_active_questionnaire_with_boundary() -> None:
# 原值: 读 birth-rectification/route.ts,断言它代理 /api/active_rectification_questions,并带 candidate_scan、question_count、not_auto_rectified
# 新值: 该路由文件不存在,且 frontend/src/app/api 下没有任何路由源码再代理 /api/active_rectification_questions
# 原因: 未登录就能打到约 20 秒的重计算,入口删除而不是补登录(BUG-1342)
assert not RECTIFICATION_ROUTE.exists()
api = Path("frontend/src/app/api")
offenders = [
str(path)
for path in api.rglob("route.ts")
if "/api/active_rectification_questions" in path.read_text(encoding="utf-8")
]
assert offenders == []