From 8363d07cf0f415b260671e6b7d4133c29eaa29c1 Mon Sep 17 00:00:00 2001 From: Luke Cartey Date: Tue, 28 Mar 2023 13:25:15 +0100 Subject: [PATCH 1/3] Perform a case insensitive match. --- src/main.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index 5a7ee1f..1511211 100644 --- a/src/main.ts +++ b/src/main.ts @@ -33,7 +33,7 @@ export const mergeFileContent = async (data: ParseResult[]) => { export const uniqueUsers = async (data: CSVDataAsJson[]) => ( data - .map((user) => user['User login']) + .map((user) => user['User login'].toLowerCase()) .filter((user, index, arr) => arr.indexOf(user) === index) ); From 910a263760329d418255f65d01946a29f4ca20ff Mon Sep 17 00:00:00 2001 From: Luke Cartey Date: Tue, 28 Mar 2023 13:26:49 +0100 Subject: [PATCH 2/3] Fix some minor typos --- __tests__/main.test.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index 65fa453..a64d954 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -29,7 +29,7 @@ describe('getFilesInDirectory', () => { `${directory}ghas_active_committers_github_2023-01-27T0917.csv`, { encoding: 'utf8' }, ); - const file2Conent = readFileSync( + const file2Content = readFileSync( `${directory}ghas_active_committers_github_2023-01-27T0918.csv`, { encoding: 'utf8' }, ); @@ -42,7 +42,7 @@ describe('getFilesInDirectory', () => { '__tests__/data/': { 'some-file.txt': 'file content here', 'ghas_active_committers_github_2023-01-27T0917.csv': file1Content, - 'ghas_active_committers_github_2023-01-27T0918.csv': file2Conent, + 'ghas_active_committers_github_2023-01-27T0918.csv': file2Content, 'empty-dir': { 'some-file.txt': '{ "some": "json" }', 'some-file-1.txt': '{ "new": "json" }', @@ -61,8 +61,8 @@ describe('getFilesInDirectory', () => { }); it('Read file within top level directory', async () => { - const filesFoundInDirecotry = await getFilesInDirectory(directory); - expect(filesFoundInDirecotry).toEqual(allFileNames); + const filesFoundInDirectory = await getFilesInDirectory(directory); + expect(filesFoundInDirectory).toEqual(allFileNames); }); it('Successfully filters out files that are not csv', async () => { @@ -75,10 +75,10 @@ describe('getFilesInDirectory', () => { const files = await getFilesInDirectory(directory); const csvFilesFound = await filerByFileExtention(files, '.csv'); const csvFiles = await readMultipleFiles(csvFilesFound); - expect(csvFiles).toEqual([file1Content, file2Conent]); + expect(csvFiles).toEqual([file1Content, file2Content]); }); - it('Successfully converts al CSVs to JSON', async () => { + it('Successfully converts all CSVs to JSON', async () => { const files = await getFilesInDirectory(directory); const csvFilesFound = await filerByFileExtention(files, '.csv'); const csvFiles = await readMultipleFiles(csvFilesFound); From e90a9b4f076247cee642b85be83aafc414d94701 Mon Sep 17 00:00:00 2001 From: Luke Cartey Date: Tue, 28 Mar 2023 13:27:03 +0100 Subject: [PATCH 3/3] Add case-insensitive tests. Modify the data to include some variations in case, and verify in the test case that the list of users is as expected. --- .../data/ghas_active_committers_github_2023-01-27T0917.csv | 6 +++--- .../data/ghas_active_committers_github_2023-01-27T0918.csv | 6 +++--- __tests__/main.test.ts | 3 +++ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/__tests__/data/ghas_active_committers_github_2023-01-27T0917.csv b/__tests__/data/ghas_active_committers_github_2023-01-27T0917.csv index a4b1f1f..77950d7 100644 --- a/__tests__/data/ghas_active_committers_github_2023-01-27T0917.csv +++ b/__tests__/data/ghas_active_committers_github_2023-01-27T0917.csv @@ -1,7 +1,7 @@ User login,Organization / repository,Last pushed date user1,org/repo,2023-01-27 user1,org1/repo2,2022-11-28 -user1,org1/repo2,2022-11-28 +uSer1,org1/repo2,2022-11-28 user2,org1/repo2,2022-11-28 user2,org1/repo2,2022-11-28 user2,org1/repo2,2022-11-28 @@ -15,7 +15,7 @@ user4,org5/repo8,2023-01-25 user4,org1/repo2,2022-11-28 user4,org4/repo6,2022-12-02 user4,org8/repo1,2022-12-02 -user5,org6/repo2,2023-01-04 +usEr5,org6/repo2,2023-01-04 user5,org1/repo2,2022-12-01 user5,org2/repo3,2023-01-06 user5,org4/repo9,2023-01-06 @@ -23,6 +23,6 @@ user5,org10/repo4,2023-01-06 user6,org1/repo2,2022-11-28 user6,org1/repo2,2022-11-28 user6,org1/repo2,2022-11-28 -user6,org9/repo3,2023-01-18 +usEr6,org9/repo3,2023-01-18 user7,org9/repo3,2023-01-08 user7,org10/repo1,2023-01-10 \ No newline at end of file diff --git a/__tests__/data/ghas_active_committers_github_2023-01-27T0918.csv b/__tests__/data/ghas_active_committers_github_2023-01-27T0918.csv index 1d96197..3bdd925 100644 --- a/__tests__/data/ghas_active_committers_github_2023-01-27T0918.csv +++ b/__tests__/data/ghas_active_committers_github_2023-01-27T0918.csv @@ -13,17 +13,17 @@ user1,org1/repo2,2022-11-28 user4,org3/repo1,2022-12-16 user1,org5/repo8,2023-01-25 user4,org1/repo2,2022-11-28 -user4,org4/repo6,2022-12-02 +User4,org4/repo6,2022-12-02 user4,org8/repo1,2022-12-02 user5,org6/repo2,2023-01-04 user5,org1/repo2,2022-12-01 user9,org2/repo3,2023-01-06 user5,org4/repo9,2023-01-06 user5,org10/repo4,2023-01-06 -user6,org1/repo2,2022-11-28 +uSer6,org1/repo2,2022-11-28 user2,org1/repo2,2022-11-28 user6,org1/repo2,2022-11-28 user6,org9/repo3,2023-01-18 -user12,org9/repo3,2023-01-08 +user10,org9/repo3,2023-01-08 user7,org10/repo1,2023-01-10 user8,org10/repo1,2023-01-10 \ No newline at end of file diff --git a/__tests__/main.test.ts b/__tests__/main.test.ts index a64d954..cb7dd8f 100644 --- a/__tests__/main.test.ts +++ b/__tests__/main.test.ts @@ -116,5 +116,8 @@ describe('getFilesInDirectory', () => { const content = await mergeFileContent(jsonFiles); const unique = await uniqueUsers(content); expect(isArrayUnique(unique)).toBeTruthy(); + const expectedUsers = Array.from({ length: 10 }, (_,i) => `user${i + 1}`); + expect(unique.length).toBe(expectedUsers.length); + expect(unique).toEqual(expect.arrayContaining(expectedUsers)); }); });