diff --git a/packages/server/src/server/auto-archive-on-merge/archive-if-safe.test.ts b/packages/server/src/server/auto-archive-on-merge/archive-if-safe.test.ts index 789326195..6531cde4a 100644 --- a/packages/server/src/server/auto-archive-on-merge/archive-if-safe.test.ts +++ b/packages/server/src/server/auto-archive-on-merge/archive-if-safe.test.ts @@ -233,15 +233,15 @@ describe("archiveIfSafe", () => { expect(harness.deps.archivePaseoWorktree).not.toHaveBeenCalled(); }); - test("does nothing when the upstream status is unknown", async () => { + test("archives when the PR is merged and the upstream branch was deleted", async () => { const harness = createHarness({ - getSnapshot: async () => createSnapshot({ git: { aheadOfOrigin: null } }), + getSnapshot: async () => + createSnapshot({ git: { aheadOfOrigin: null, behindOfOrigin: null } }), }); await runArchiveIfSafe(harness); - expect(harness.deps.isPaseoOwnedWorktreeCwd).not.toHaveBeenCalled(); - expect(harness.deps.archivePaseoWorktree).not.toHaveBeenCalled(); + expect(harness.deps.archivePaseoWorktree).toHaveBeenCalledTimes(1); }); test("does nothing when the cwd is not a Paseo-owned worktree", async () => { diff --git a/packages/server/src/server/auto-archive-on-merge/archive-if-safe.ts b/packages/server/src/server/auto-archive-on-merge/archive-if-safe.ts index d98ceaa86..7831a733e 100644 --- a/packages/server/src/server/auto-archive-on-merge/archive-if-safe.ts +++ b/packages/server/src/server/auto-archive-on-merge/archive-if-safe.ts @@ -78,10 +78,10 @@ export async function archiveIfSafe(input: { return; } - if (snapshot.git.isDirty === true || snapshot.git.aheadOfOrigin === null) { + if (snapshot.git.isDirty === true) { return; } - if (snapshot.git.aheadOfOrigin > 0) { + if (typeof snapshot.git.aheadOfOrigin === "number" && snapshot.git.aheadOfOrigin > 0) { return; }