Files
Jyotisha/tests/test_agent_chat_contract.py
T
2026-07-16 20:59:36 +08:00

60 lines
2.5 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
ROOT = Path(__file__).resolve().parents[1]
PAGE = ROOT / "frontend" / "src" / "app" / "page.tsx"
AGENT = ROOT / "frontend" / "src" / "mastra" / "index.ts"
ONBOARDING_ROUTE = ROOT / "frontend" / "src" / "app" / "api" / "onboarding" / "route.ts"
CONSULT_ROUTE = ROOT / "frontend" / "src" / "app" / "api" / "consult" / "route.ts"
ONBOARDING_MIGRATION = (
ROOT
/ "frontend"
/ "supabase"
/ "migrations"
/ "20260715040000_agent_onboarding_cache.sql"
)
def test_onboarding_and_agent_suggestion_contract() -> None:
page = PAGE.read_text(encoding="utf-8")
agent = AGENT.read_text(encoding="utf-8")
route = ONBOARDING_ROUTE.read_text(encoding="utf-8")
consult_route = CONSULT_ROUTE.read_text(encoding="utf-8")
migration = ONBOARDING_MIGRATION.read_text(encoding="utf-8")
assert "onboarding-card" in page
assert 'type OnboardingStep = "name" | "birth" | "place"' in page
assert "text.slice(0, length)" in page
assert "window.setInterval" in page
assert "prefers-reduced-motion: reduce" in page
assert "用于计算星盘,并安全保存到你的账号" not in page
assert "saveOnboardingName" in page
assert "saveOnboardingBirth" in page
assert "saveOnboardingPlace" in page
assert "<BirthMomentFields value={profileDraft}" in page
assert "<BirthLocationFields value={profileDraft}" in page
assert "Enter 确认称呼" in page
assert 'fetch("/api/onboarding"' in page
assert "onboarding?.suggestions" in page
assert "parseAgentReply(answer, theme)" in page
assert "suggestions: reply.suggestions" in page
assert "activeSuggestions.map" in page
assert "export const onboardingAgent" in agent
assert "skills: [jyotishSkillPath]" in agent
assert "This is onboarding, not a chart reading" in agent
assert "<!--AYANAM_SUGGESTIONS:" in agent
assert "grounded in the answer just given" in agent
assert "Treat the server-provided current time as authoritative" in agent
assert "supabase.auth.getUser()" in route
assert "function currentTimeContext(now = new Date())" in consult_route
assert "currentTimeContext()," in consult_route
assert "中国标准时间(UTC+8" in consult_route
assert 'profile.onboarding_version === ONBOARDING_VERSION' in route
assert "onboardingAgent.generate" in route
assert 'source: "cache"' in route
assert "onboarding_payload" in migration
assert "to service_role" in migration
assert "to authenticated" not in migration