Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactor] SummaryUtil 리팩토링(#723) #756

Merged
merged 3 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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", () => {
Expand All @@ -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);
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -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<string> = new Set();

clusterNode.commitNodeList.map((commitNode: CommitNode) => {
clusterNode.commitNodeList.forEach((commitNode: CommitNode) => {
// set names
const authorSet: Set<string> = new Set();
commitNode.commit.author.names.map((name) => {
commitNode.commit.author.names.forEach((name) => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍👍👍

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;
Expand Down
Loading