fix(FN-4526): finalize stale merge stats repairs and changeset
Fusion-Task-Id: FN-4526 Fusion-Task-Lineage: 38dc93d6-3e56-4e22-aaaa-d09b2eed43e5
This commit is contained in:
@@ -110,7 +110,7 @@ describeIfGit("SelfHealingManager recoverDoneTaskMergeMetadata stale stats", ()
|
||||
it("does not rewrite when stats are already correct", async () => {
|
||||
const { repo, sha } = setupRepo();
|
||||
const expected = parseShortstat(git(repo, `git show --shortstat --format= ${sha}`));
|
||||
const task = makeTask("FN-4526-OK", repo, sha, expected);
|
||||
const task = makeTask("FN-4526-STATS", repo, sha, expected);
|
||||
const tasks = new Map([[task.id, task]]);
|
||||
const store = createStore(tasks);
|
||||
const manager = new SelfHealingManager(store, { rootDir: repo, getExecutingTaskIds: () => new Set() });
|
||||
@@ -119,4 +119,22 @@ describeIfGit("SelfHealingManager recoverDoneTaskMergeMetadata stale stats", ()
|
||||
|
||||
expect((store.updateTask as any).mock.calls).toHaveLength(0);
|
||||
});
|
||||
|
||||
it("repairs stale stats in unconfirmed branch when SHA matches landed commit", async () => {
|
||||
const { repo, sha } = setupRepo();
|
||||
const expected = parseShortstat(git(repo, `git show --shortstat --format= ${sha}`));
|
||||
const task = makeTask("FN-4526-STATS", repo, sha, { filesChanged: 777, insertions: 888, deletions: 999, mergeConfirmed: false });
|
||||
const tasks = new Map([[task.id, task]]);
|
||||
const store = createStore(tasks);
|
||||
const manager = new SelfHealingManager(store, { rootDir: repo, getExecutingTaskIds: () => new Set() });
|
||||
|
||||
await manager.recoverDoneTaskMergeMetadata();
|
||||
|
||||
const repaired = tasks.get(task.id)!;
|
||||
expect(repaired.mergeDetails?.commitSha).toBe(sha);
|
||||
expect(repaired.mergeDetails?.filesChanged).toBe(expected.filesChanged);
|
||||
expect(repaired.mergeDetails?.insertions).toBe(expected.insertions);
|
||||
expect(repaired.mergeDetails?.deletions).toBe(expected.deletions);
|
||||
expect(repaired.mergeDetails?.mergeConfirmed).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user