From 4e85da4e783c217660a561414b4a2c92e18d15b7 Mon Sep 17 00:00:00 2001 From: pithesun Date: Sat, 28 Sep 2024 23:24:58 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feature(view)=20:=20=ED=81=B4=EB=9F=AC?= =?UTF-8?q?=EC=8A=A4=ED=84=B0=20=EC=BB=A4=EB=B0=8B=20=EC=9E=91=EC=84=B1?= =?UTF-8?q?=EC=9E=90=20=EC=9D=B4=EB=A6=84=20=EC=A4=91=EB=B3=B5=20=EC=B2=B4?= =?UTF-8?q?=ED=81=AC=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=9E=91=EC=84=B1(#7?= =?UTF-8?q?23)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Summary/Summary.util.test.ts | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts b/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts index ec3bbae8..4578be59 100644 --- a/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts +++ b/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts @@ -84,11 +84,21 @@ test("getClusterIds test", () => { expect(result).toHaveLength(2); }); -test("getInitData test", () => { +describe("getInitData test", () => { const result = getInitData(clusterNodeMockData); - expect(result).not.toBeUndefined(); - expect(result[0].clusterId).toBe(0); - expect(result[0].summary.authorNames[0][0]).toBe("ytaek"); - expect(result[0].summary.content.message).toBe("Initial commit"); + test("getInitData test", () => { + expect(result).not.toBeUndefined(); + expect(result[0].clusterId).toBe(0); + expect(result[0].summary.authorNames[0][0]).toBe("ytaek"); + expect(result[0].summary.content.message).toBe("Initial commit"); + }); + + test("클러스터의 커밋 작성자 이름이 중복되지 않는다.", () => { + const isUnique = result + .map((data) => data.summary.authorNames.length === new Set(data.summary.authorNames).size) + .every((value) => value === true); + + expect(isUnique).toBe(true); + }); }); From 73e8058524ee9b142e09e2a9129057a1026a1a83 Mon Sep 17 00:00:00 2001 From: pithesun Date: Sat, 28 Sep 2024 23:37:24 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feature(view)=20:=20SummaryUtil=20=EB=A6=AC?= =?UTF-8?q?=ED=8C=A9=ED=86=A0=EB=A7=81(#723)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Summary/Summary.util.ts | 52 ++++++------------- 1 file changed, 17 insertions(+), 35 deletions(-) diff --git a/packages/view/src/components/VerticalClusterList/Summary/Summary.util.ts b/packages/view/src/components/VerticalClusterList/Summary/Summary.util.ts index e17ef18e..5b62ffe7 100644 --- a/packages/view/src/components/VerticalClusterList/Summary/Summary.util.ts +++ b/packages/view/src/components/VerticalClusterList/Summary/Summary.util.ts @@ -66,55 +66,37 @@ export function getInitData(data: GlobalProps["data"]): Cluster[] { const clusters: Cluster[] = []; data.map((clusterNode) => { - const { message } = clusterNode.commitNodeList[0].commit; - const resultMsg = message.split("/n/n")[0]; - const cluster: Cluster = { - clusterId: clusterNode.commitNodeList[0].clusterId, - summary: { - authorNames: [], - content: { - message: resultMsg, - count: clusterNode.commitNodeList.length - 1, - }, - }, - latestReleaseTag: "", - }; - + const { commit: clusterFirstCommit, clusterId } = clusterNode.commitNodeList[0]; + const { message } = clusterFirstCommit; const clusterTags: string[] = []; + const authorSet: Set = new Set(); - clusterNode.commitNodeList.map((commitNode: CommitNode) => { + clusterNode.commitNodeList.forEach((commitNode: CommitNode) => { // set names - const authorSet: Set = new Set(); - commitNode.commit.author.names.map((name) => { + commitNode.commit.author.names.forEach((name) => { authorSet.add(name.trim()); - return name.trim(); }); - cluster.summary.authorNames.push(Array.from(authorSet)); - // get releaseTags in cluster commitNodeList - commitNode.commit.releaseTags?.map((tag) => { + commitNode.commit.releaseTags?.forEach((tag) => { clusterTags.push(tag); - return clusterTags; }); - - return commitNode; }); // set latset release tag const latestReleaseTag = getCommitLatestTag(clusterTags); - cluster.latestReleaseTag = latestReleaseTag; - // remove name overlap - const authorsSet = cluster.summary.authorNames.reduce((set, authorArray) => { - authorArray.forEach((author) => { - set.add(author); - }); - return set; - }, new Set()); - - cluster.summary.authorNames = []; - cluster.summary.authorNames.push(Array.from(authorsSet) as string[]); + const cluster: Cluster = { + clusterId: clusterId, + summary: { + authorNames: [Array.from(authorSet)], + content: { + message: message.split("/n/n")[0], + count: clusterNode.commitNodeList.length - 1, + }, + }, + latestReleaseTag: latestReleaseTag, + }; clusters.push(cluster); return cluster; From 9dc298c4f08b878f0349e80b47b3bb457025f9a9 Mon Sep 17 00:00:00 2001 From: pithesun Date: Mon, 21 Oct 2024 01:02:42 +0900 Subject: [PATCH 3/3] =?UTF-8?q?refactor(view):=20=ED=81=B4=EB=9F=AC?= =?UTF-8?q?=EC=8A=A4=ED=84=B0=20=EC=BB=A4=EB=B0=8B=20=EC=9E=91=EC=84=B1?= =?UTF-8?q?=EC=9E=90=20=EC=9D=B4=EB=A6=84=20=EC=A4=91=EB=B3=B5=20=EC=B2=B4?= =?UTF-8?q?=ED=81=AC=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=9E=91=EC=84=B1=20?= =?UTF-8?q?=EC=88=98=EC=A0=95(githru#723)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Summary/Summary.util.test.ts | 87 +++++++++++++++++-- 1 file changed, 80 insertions(+), 7 deletions(-) diff --git a/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts b/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts index 4578be59..97b4c367 100644 --- a/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts +++ b/packages/view/src/components/VerticalClusterList/Summary/Summary.util.test.ts @@ -57,6 +57,81 @@ const clusterNodeMockData: ClusterNode[] = [ ], nodeTypeName: "CLUSTER", }, + { + nodeTypeName: "CLUSTER", + commitNodeList: [ + { + nodeTypeName: "COMMIT", + commit: { + id: "dbb3beec12a66788b126101d5b2e6c0b4bb86379", + parentIds: ["0dca5a0e77c9c3cf99f55544721078141a551670", "b3caa9b6c71f72bec6fe44cad13e92555de3f54c"], + author: { + id: "no-id", + names: ["jin-Pro"], + emails: ["70205497+jin-Pro@users.noreply.github.com"], + }, + committer: { + id: "no-id", + names: ["GitHub"], + emails: ["noreply@github.com"], + }, + authorDate: "Tue Sep 13 2022 15:50:57 GMT+0900 (Korean Standard Time)", + commitDate: "Tue Sep 13 2022 15:50:57 GMT+0900 (Korean Standard Time)", + diffStatistics: { + changedFileCount: 1, + insertions: 66, + deletions: 0, + files: { + "packages/view/CONTRIBUTING.md": { + insertions: 66, + deletions: 0, + }, + }, + }, + message: "Merge pull request #158 from jin-Pro/main/n/nadd View CONTRIBUTING.md Template", + tags: [], + releaseTags: [], + }, + clusterId: 89, + seq: 1, + }, + { + nodeTypeName: "COMMIT", + commit: { + id: "b3caa9b6c71f72bec6fe44cad13e92555de3f54c", + parentIds: ["2719afd7716153c9318dad48482c8245bea82eb5"], + author: { + id: "no-id", + names: ["jin-Pro"], + emails: ["dnjun2@ajou.ac.kr"], + }, + committer: { + id: "no-id", + names: ["jin-Pro"], + emails: ["dnjun2@ajou.ac.kr"], + }, + authorDate: "Tue Sep 13 2022 14:50:26 GMT+0900 (Korean Standard Time)", + commitDate: "Tue Sep 13 2022 14:50:26 GMT+0900 (Korean Standard Time)", + diffStatistics: { + changedFileCount: 1, + insertions: 66, + deletions: 0, + files: { + "packages/view/CONTRIBUTING.md": { + insertions: 66, + deletions: 0, + }, + }, + }, + message: "docs(view): add View CONTRIBUTING.md Template", + tags: [], + releaseTags: [], + }, + clusterId: 89, + seq: 2, + }, + ], + }, ]; test("getClusterById test", () => { @@ -81,7 +156,9 @@ test("getClusterIds test", () => { expect(result).not.toBeUndefined(); expect(result[0]).toBe(0); expect(result[1]).toBe(1); - expect(result).toHaveLength(2); + expect(result[2]).toBe(89); + + expect(result).toHaveLength(3); }); describe("getInitData test", () => { @@ -94,11 +171,7 @@ describe("getInitData test", () => { expect(result[0].summary.content.message).toBe("Initial commit"); }); - test("클러스터의 커밋 작성자 이름이 중복되지 않는다.", () => { - const isUnique = result - .map((data) => data.summary.authorNames.length === new Set(data.summary.authorNames).size) - .every((value) => value === true); - - expect(isUnique).toBe(true); + test("the commit author names in the cluster are not duplicated.", () => { + expect(result[2].summary.authorNames.length).toBe(1); }); });