refactor(frontend): 四生成 hook 结束后额外返回产物(AC-3 留痕前置)

useRefine.refine/recommunicate→RefineVersion|null、useContinue.generate→string|null、
useChapterRewrite.send→RewriteVersion|null、useGenerator.generate→GeneratorArtifact|null。
向后兼容(既有调用忽略返回值不受影响);各 hook 成功用例补返回值断言。
面板据此 if(artifact) 才 append,空候选/错误路径不留痕。
This commit is contained in:
Yaojia Wang
2026-07-09 17:15:49 +02:00
parent ddf7fa061a
commit 59f2f60a7e
8 changed files with 66 additions and 25 deletions

View File

@@ -55,8 +55,9 @@ describe("useGenerator", () => {
});
const { result } = renderHook(() => useGenerator());
let returned: { outputKind: string; rawPreview: unknown } | null = null;
await act(async () => {
await result.current.generate("p1", "idea", { brief: "脑洞" });
returned = await result.current.generate("p1", "idea", { brief: "脑洞" });
});
expect(result.current.genStatus).toBe("preview");
@@ -65,6 +66,9 @@ describe("useGenerator", () => {
expect(result.current.preview?.kind).toBe("IdeaListResult");
expect(result.current.preview?.items[0]?.heading).toBe("废柴逆袭");
expect(toast).not.toHaveBeenCalled();
// 追加断言generate 返回本次产物(供 GeneratorRunner 结束后留痕)。
expect(returned?.outputKind).toBe("IdeaListResult");
expect(returned?.rawPreview).toEqual(preview);
});
it("生成后端返回 errorgenStatus=error 且弹错误 toast", async () => {