refactor: simplify onboarding cache contracts

This commit is contained in:
Jesse_Chen
2026-07-20 00:07:24 +08:00
parent 346ec02fd2
commit a9ffbd9e0a
5 changed files with 30 additions and 61 deletions
-26
View File
@@ -5,10 +5,6 @@ PAGE = ROOT / "frontend" / "src" / "app" / "page.tsx"
AGENT = ROOT / "frontend" / "src" / "mastra" / "index.ts"
ONBOARDING_ROUTE = ROOT / "frontend" / "src" / "app" / "api" / "onboarding" / "route.ts"
ONBOARDING_CLIENT = ROOT / "frontend" / "src" / "lib" / "onboarding-client.ts"
ONBOARDING_POST = ROOT / "frontend" / "src" / "lib" / "onboarding-post.ts"
ONBOARDING_CACHE_POLICY = (
ROOT / "frontend" / "src" / "lib" / "onboarding-cache-policy.ts"
)
CONSULT_ROUTE = ROOT / "frontend" / "src" / "app" / "api" / "consult" / "route.ts"
MODELS_ROUTE = ROOT / "frontend" / "src" / "app" / "api" / "models" / "route.ts"
MODEL_SELECTION = ROOT / "frontend" / "src" / "lib" / "consultation-model-selection.ts"
@@ -29,8 +25,6 @@ def test_onboarding_and_agent_suggestion_contract() -> None:
agent = AGENT.read_text(encoding="utf-8")
route = ONBOARDING_ROUTE.read_text(encoding="utf-8")
onboarding_client = ONBOARDING_CLIENT.read_text(encoding="utf-8")
onboarding_post = ONBOARDING_POST.read_text(encoding="utf-8")
cache_policy = ONBOARDING_CACHE_POLICY.read_text(encoding="utf-8")
consult_route = CONSULT_ROUTE.read_text(encoding="utf-8")
migration = ONBOARDING_MIGRATION.read_text(encoding="utf-8")
@@ -54,32 +48,12 @@ def test_onboarding_and_agent_suggestion_contract() -> None:
assert "export function getOnboardingAgent" 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(requestTime)," in consult_route
assert "中国标准时间(UTC+8" in consult_route
assert "export const POST = createOnboardingPost" in route
assert 'claim.is("onboarding_version", null)' in route
assert '.eq("onboarding_version", command.expectedVersion)' in route
assert 'claim.is("onboarding_generated_at", null)' in route
assert '.eq("onboarding_generated_at", command.expectedGeneratedAt)' in route
assert (
'.eq("onboarding_version", command.expectedPendingVersion)\n'
' .select("id")\n'
" .maybeSingle();"
) in route
assert "createOnboardingCacheIdentity" in onboarding_post
assert "expectedGeneratedAt: profile.onboarding_generated_at" in onboarding_post
assert "completed.data" in onboarding_post
assert 'source: "cache"' in onboarding_post
assert 'source: "pending"' in onboarding_post
assert 'createHash("sha256")' in cache_policy
assert "getOnboardingAgent(model).generate" in route
assert "onboarding_payload" in migration
assert "to service_role" in migration
assert "to authenticated" not in migration