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:
committed by
gsxdsm
parent
3d7e737fbe
commit
439716165b
53
packages/engine/src/__tests__/pr-changes-requested.test.ts
Normal file
53
packages/engine/src/__tests__/pr-changes-requested.test.ts
Normal 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");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user