feat: restore full-fidelity heaven rituals

This commit is contained in:
leefer
2026-07-23 23:50:12 +08:00
parent bc7521a591
commit eb1e2bca9a
8 changed files with 211 additions and 207 deletions
+2 -1
View File
@@ -374,7 +374,8 @@ test("heaven reading loading uses the matching canvas scene and stops cleanly",
await heavenReadingAnimation.complete();
return performance.now() - started;
});
expect(completionMs).toBeLessThan(1000);
expect(completionMs).toBeGreaterThanOrEqual(1600);
expect(completionMs).toBeLessThan(2000);
await expect(canvas).toHaveAttribute("data-running", "false");
}
await page.locator("#closeHeavenReadingDialog").click();
+41
View File
@@ -83,6 +83,47 @@ class HeavenReadingTests(unittest.TestCase):
self.assertEqual(result["reading"]["id"], existing["id"])
self.assertEqual(result["answer"], "当日解运结果")
def test_legacy_truncated_fortune_is_regenerated_once(self):
self.database.save_heaven_reading(
self.owner["id"],
"fortune",
"20260723",
"2026-07-23 观气",
"丙午年 · 乙未月 · 己丑日",
"旧版解运结果被截断……",
{"calendar_date": "20260723"},
"fortune:20260723",
)
service = DashboardService.__new__(DashboardService)
service.database = self.database
service._request_context = threading.local()
service._request_context.user_id = self.owner["id"]
setup = {
"calendar_date": "20260723",
"field": {
"sector_catalog": [],
"balance": [{"element": ""}],
"pillars": {"year": "丙午", "month": "乙未", "day": "己丑"},
},
}
with patch.object(service, "heaven_setup", return_value=setup), patch.object(
service, "account_personal_field", return_value={}
), patch.object(
service,
"_call_heaven_agent",
return_value=({"answer": "完整的当日解运结果", "model": "test", "latency_ms": 1}, "primary"),
):
result = service.heaven_interpret(
{"mode": "fortune", "trade_date": "2026-07-23"}
)
self.assertFalse(result["reused"])
self.assertEqual(result["reading"]["answer"], "完整的当日解运结果")
self.assertEqual(
len(self.database.list_heaven_readings(self.owner["id"], "fortune")), 1
)
if __name__ == "__main__":
unittest.main()