diff --git a/apps/backend/src/services/folders.ts b/apps/backend/src/services/folders.ts index 53eb7f0..0bf5648 100644 --- a/apps/backend/src/services/folders.ts +++ b/apps/backend/src/services/folders.ts @@ -50,6 +50,11 @@ export function inferFolders(options: Options): Folder[] { } } - const converted = toFolder(root); + let converted = toFolder(root); + while ( + converted.folders.length === 1 && + converted.folders[0].folders.length === 1 + ) + converted = converted.folders[0]; return converted.folders; } diff --git a/apps/backend/src/utils/git-parser.spec.ts b/apps/backend/src/utils/git-parser.spec.ts index 002294a..b69ec53 100644 --- a/apps/backend/src/utils/git-parser.spec.ts +++ b/apps/backend/src/utils/git-parser.spec.ts @@ -74,6 +74,7 @@ const logWithRenames = `"John Doe ,${today.toISOString()}" "Jane Doe ,${today.toISOString()}" 10\t0\t/shell/my.component.ts 0\t1\t/shell/my-other.component.ts +20\t1\t/shared/feature-checkin/my.component.ts `; jest.mock('../infrastructure/log'); @@ -506,6 +507,11 @@ describe('git parser', () => { linesRemoved: 1, path: '/shell/my-other.component.ts', }, + { + linesAdded: 20, + linesRemoved: 1, + path: '/shared/sub-features/feature-checkin/my.component.ts', + }, ], }, ]); diff --git a/apps/backend/src/utils/git-parser.ts b/apps/backend/src/utils/git-parser.ts index 214ba9d..9885203 100644 --- a/apps/backend/src/utils/git-parser.ts +++ b/apps/backend/src/utils/git-parser.ts @@ -148,7 +148,10 @@ function parseBodyEntry( // path.join replacement that does not depend on OS, and normalizes separators as used in a git log function pathJoin(...args: string[]) { - return args.join('/').replace(/\/{2,}/g, '/').replace(/\/$/g, ''); + return args + .join('/') + .replace(/\/{2,}/g, '/') + .replace(/\/$/g, ''); } function handleRenames(filePath: string, renameMap: Map) {