FN-5794: run worktree init for fresh merge workspaces
Run merge worktree initialization automatically when a merge workspace is newly created. - detect when integration worktree creation is fresh and invoke the configured init command - preserve existing behavior for already-initialized worktrees while improving setup reliability - add integration tests covering init command execution paths for merge worktree setup Files changed: .changeset/fn-5794-merge-worktree-init.md | 5 +++ .../__tests__/merger-integration-worktree.test.ts | 16 +++++++++ packages/engine/src/merger.ts | 39 +++++++++++++++++++++- 3 files changed, 59 insertions(+), 1 deletion(-) Fusion-Task-Id: FN-5794 Fusion-Task-Lineage: f368099f-a179-466e-b994-2a503167112c
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
import { readFileSync } from "node:fs";
|
||||
|
||||
import {
|
||||
createMockStore,
|
||||
@@ -222,6 +223,21 @@ describe("probeIntegrationWorktreeState", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("merger fresh reacquire init wiring", () => {
|
||||
it("wires fresh acquireTaskWorktree calls with init command execution", () => {
|
||||
const mergerSource = readFileSync(new URL("../merger.ts", import.meta.url), "utf-8");
|
||||
const freshAcquireBlock = mergerSource.match(/const acquisition = await acquireTaskWorktree\(\{[\s\S]*?\n\s*\}\);/);
|
||||
expect(freshAcquireBlock?.[0]).toContain("runInitCommand: true");
|
||||
expect(freshAcquireBlock?.[0]).toContain("runConfiguredCommand:");
|
||||
expect(freshAcquireBlock?.[0]).toContain("runConfiguredMergeWorktreeCommand");
|
||||
});
|
||||
|
||||
it("keeps direct-reuse shortcut on existing registrations", () => {
|
||||
const mergerSource = readFileSync(new URL("../merger.ts", import.meta.url), "utf-8");
|
||||
expect(mergerSource).toContain("Skip acquireTaskWorktree's");
|
||||
});
|
||||
});
|
||||
|
||||
describe("acquireReuseHandoff", () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks();
|
||||
|
||||
Reference in New Issue
Block a user