test(FN-4761): complete Step 5 — add review transition regression coverage

Fusion-Task-Id: FN-4761
Fusion-Task-Lineage: b6b1ed73-c396-4dd2-b97f-366272d05c7f
This commit is contained in:
Fusion (runfusion.ai)
2026-05-17 11:29:39 -07:00
committed by gsxdsm
parent 3d7e737fbe
commit 439716165b
3 changed files with 64 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
// @vitest-environment node
import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { mkdtempSync, rmSync } from "node:fs";
import { tmpdir } from "node:os";
import { join } from "node:path";
import { TaskStore } from "@fusion/core";
describe("PR changes-requested fallback behavior", () => {
let rootDir: string;
let globalDir: string;
let store: TaskStore;
beforeEach(async () => {
rootDir = mkdtempSync(join(tmpdir(), "fn-4761-engine-root-"));
globalDir = mkdtempSync(join(tmpdir(), "fn-4761-engine-global-"));
store = new TaskStore(rootDir, globalDir, { inMemoryDb: true });
await store.init();
});
afterEach(() => {
store.stopWatching();
store.close();
rmSync(rootDir, { recursive: true, force: true });
rmSync(globalDir, { recursive: true, force: true });
});
it("keeps progress and persists review feedback when moving in-review tasks back to todo", async () => {
const created = await store.createTask({ description: "Test task" });
await store.moveTask(created.id, "todo");
await store.moveTask(created.id, "in-progress");
await store.moveTask(created.id, "in-review");
await store.upsertTaskDocument(created.id, {
key: "review-feedback",
content: "**Reviewer feedback for next run:**\n\n- Please fix failing tests",
author: "github-review",
});
await store.moveTask(created.id, "todo", {
preserveProgress: true,
preserveWorktree: true,
moveSource: "engine",
});
const updated = await store.getTask(created.id);
expect(updated?.column).toBe("todo");
const feedbackDoc = await store.getTaskDocument(created.id, "review-feedback");
expect(feedbackDoc?.content).toContain("Reviewer feedback for next run");
expect(feedbackDoc?.content).toContain("Please fix failing tests");
});
});