From a2275adfed838cde765a842d5cbc2dcad0cf8e59 Mon Sep 17 00:00:00 2001 From: Luke Albao Date: Thu, 25 Jan 2024 15:05:59 -0800 Subject: [PATCH 1/2] ignore trailing whitespace in rules --- src/lib/ownership/OwnershipEngine.test.ts | 11 +++++++++++ src/lib/ownership/OwnershipEngine.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/lib/ownership/OwnershipEngine.test.ts b/src/lib/ownership/OwnershipEngine.test.ts index 3e5d6ee..1ce409a 100644 --- a/src/lib/ownership/OwnershipEngine.test.ts +++ b/src/lib/ownership/OwnershipEngine.test.ts @@ -158,6 +158,17 @@ describe('OwnershipEngine', () => { expect(() => OwnershipEngine.FromCodeownersFile('some/codeowners/file')) .toThrowError(expectedError); }); + + it('ignore trailing whitespace', () => { + // Arrange + const codeowners = "some/file @org/owners "; + + readFileSyncMock.mockReturnValue(Buffer.from(codeowners)); + + // Assert + expect(() => OwnershipEngine.FromCodeownersFile('some/codeowners/file')) + .not.toThrow(); + }); }); describe.each(patterns)('$name: "$pattern"', ({ name, pattern, paths }) => { diff --git a/src/lib/ownership/OwnershipEngine.ts b/src/lib/ownership/OwnershipEngine.ts index 6c15022..87599fe 100644 --- a/src/lib/ownership/OwnershipEngine.ts +++ b/src/lib/ownership/OwnershipEngine.ts @@ -63,7 +63,7 @@ export class OwnershipEngine { const createMatcherCodeownersRule = (rule: string): FileOwnershipMatcher => { // Split apart on spaces - const parts = rule.split(/\s+/); + const parts = rule.split(/\s+/).filter(Boolean); // The first part is expected to be the path const path = parts[0]; From 360835ae754d778bb5af902f2a6caa17684c3ad3 Mon Sep 17 00:00:00 2001 From: Luke Albao Date: Thu, 25 Jan 2024 15:15:06 -0800 Subject: [PATCH 2/2] lint fix --- src/lib/ownership/OwnershipEngine.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ownership/OwnershipEngine.test.ts b/src/lib/ownership/OwnershipEngine.test.ts index 1ce409a..e2c6b92 100644 --- a/src/lib/ownership/OwnershipEngine.test.ts +++ b/src/lib/ownership/OwnershipEngine.test.ts @@ -161,7 +161,7 @@ describe('OwnershipEngine', () => { it('ignore trailing whitespace', () => { // Arrange - const codeowners = "some/file @org/owners "; + const codeowners = 'some/file @org/owners '; readFileSyncMock.mockReturnValue(Buffer.from(codeowners));