From 0d882b435005abff36f2dc97f51a1e17895831aa Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Sat, 13 Jun 2026 11:08:56 -0700 Subject: [PATCH] FN-6383: add branch canonicalization unit coverage Expand executor tests around canonical Fusion branch naming behavior. - Cover standard, lowercase, and case-only variant task IDs. - Document current prefix behavior for branch-name inputs and malformed edge cases. - Pin lowercase-only behavior without trimming or slugifying task ID text. Files changed: .../executor-branch-canonicalization.test.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) Fusion-Task-Id: FN-6383 Fusion-Task-Lineage: cb43e67d-2cb3-4e08-8ea3-eaa7939ae037 --- .../executor-branch-canonicalization.test.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/engine/src/__tests__/executor-branch-canonicalization.test.ts b/packages/engine/src/__tests__/executor-branch-canonicalization.test.ts index 3e43a42cf0..fdd3af0767 100644 --- a/packages/engine/src/__tests__/executor-branch-canonicalization.test.ts +++ b/packages/engine/src/__tests__/executor-branch-canonicalization.test.ts @@ -6,4 +6,26 @@ describe("executor branch canonicalization", () => { expect(canonicalFusionBranchName("FN-5083")).toBe("fusion/fn-5083"); expect(canonicalFusionBranchName("Fn-ABC-123")).toBe("fusion/fn-abc-123"); }); + + it("returns the canonical lowercase branch form for standard and case-only variant task IDs", () => { + expect(canonicalFusionBranchName("FN-6383")).toBe("fusion/fn-6383"); + expect(canonicalFusionBranchName("Fn-ABC-123")).toBe("fusion/fn-abc-123"); + expect(canonicalFusionBranchName("FUSION-001")).toBe("fusion/fusion-001"); + }); + + it("preserves already-lowercase task ids and documents that callers must not pass branch names", () => { + expect(canonicalFusionBranchName("fn-6383")).toBe("fusion/fn-6383"); + expect(canonicalFusionBranchName("fusion/fn-1")).toBe("fusion/fusion/fn-1"); + }); + + it("lowercases arbitrary task-id shapes without slugifying or trimming characters", () => { + expect(canonicalFusionBranchName("TASK_42")).toBe("fusion/task_42"); + expect(canonicalFusionBranchName("feature/Foo")).toBe("fusion/feature/foo"); + }); + + it("pins malformed and edge inputs to prefix-plus-lowercase behavior", () => { + expect(canonicalFusionBranchName("")).toBe("fusion/"); + expect(canonicalFusionBranchName(" ")).toBe("fusion/ "); + expect(canonicalFusionBranchName("ABC123XYZ")).toBe("fusion/abc123xyz"); + }); });