Fix training plan generation flow

这个提交包含在:
cryptocommuniums-afk
2026-03-14 23:16:19 +08:00
父节点 6943754838
当前提交 1cc863e60e
修改 8 个文件,包含 429 行新增19 行删除

查看文件

@@ -2,6 +2,7 @@ import { describe, expect, it, vi, beforeEach } from "vitest";
import { appRouter } from "./routers";
import { COOKIE_NAME } from "../shared/const";
import type { TrpcContext } from "./_core/context";
import * as db from "./db";
type AuthenticatedUser = NonNullable<TrpcContext["user"]>;
@@ -209,6 +210,17 @@ describe("plan.active", () => {
const caller = appRouter.createCaller(ctx);
await expect(caller.plan.active()).rejects.toThrow();
});
it("returns null when the user has no active plan", async () => {
const user = createTestUser();
const { ctx } = createMockContext(user);
const caller = appRouter.createCaller(ctx);
const getActivePlanSpy = vi.spyOn(db, "getActivePlan").mockResolvedValueOnce(null);
await expect(caller.plan.active()).resolves.toBeNull();
getActivePlanSpy.mockRestore();
});
});
describe("plan.adjust input validation", () => {