From 95d97c81cd0d8d9bf15462fcbad48c5a1062ae43 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 3 Jun 2026 11:35:02 -0400 Subject: [PATCH] Limit duplicate utility candidates to utilities --- src/analyzers/duplicateUtilityDrift.ts | 7 ++++--- tests/duplicateUtilityDrift.test.ts | 9 +++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/analyzers/duplicateUtilityDrift.ts b/src/analyzers/duplicateUtilityDrift.ts index 89698d3..bb89262 100644 --- a/src/analyzers/duplicateUtilityDrift.ts +++ b/src/analyzers/duplicateUtilityDrift.ts @@ -14,14 +14,15 @@ export function analyzeDuplicateUtilityDrift( } const changedPaths = new Set(changedFiles.map((file) => file.path)); - const sourceFilePaths = new Set( + const utilityFilePaths = new Set( allFiles - .filter((file) => classifyFileCategory(file) !== "test") + .filter((file) => classifyFileCategory(file) === "utility") .map((file) => file.path) ); const baselineFunctions = profile.exportedFunctions.filter( (exportedFunction) => - sourceFilePaths.has(exportedFunction.filePath) && !changedPaths.has(exportedFunction.filePath) + utilityFilePaths.has(exportedFunction.filePath) && + !changedPaths.has(exportedFunction.filePath) ); const findings: DriftFinding[] = []; diff --git a/tests/duplicateUtilityDrift.test.ts b/tests/duplicateUtilityDrift.test.ts index 8244d2d..4b7a69a 100644 --- a/tests/duplicateUtilityDrift.test.ts +++ b/tests/duplicateUtilityDrift.test.ts @@ -79,4 +79,13 @@ describe("analyzeDuplicateUtilityDrift", () => { expect(findings).toEqual([]); }); + + it("does not use non-utility exports as duplicate candidates", () => { + const findings = analyze([ + file("src/utils/dateFormat.ts", "export function formatDate() {}", true), + file("src/components/FormatDateShort.tsx", "export function formatDateShort() {}") + ]); + + expect(findings).toEqual([]); + }); });