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..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,14 +156,22 @@ 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); }); -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("the commit author names in the cluster are not duplicated.", () => { + expect(result[2].summary.authorNames.length).toBe(1); + }); }); 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;