Ranks: Take into account user reviewed PRs count (#2857)

* Rank: Take into account user reviewed PRs count

* e2e

* fix tests

* dev

* docs

* dev

* dev
This commit is contained in:
Alexandr Garbuzov
2023-07-21 13:59:53 +02:00
committed by GitHub
parent 0c380e3982
commit b56689b4bd
7 changed files with 31 additions and 8 deletions
+1
View File
@@ -24,6 +24,7 @@ stats.rank = calculateRank({
all_commits: false,
commits: stats.totalCommits,
prs: stats.totalPRs,
reviews: stats.totalReviews,
issues: stats.totalIssues,
repos: 1,
stars: stats.totalStars,
+13 -6
View File
@@ -10,6 +10,7 @@ describe("Test calculateRank", () => {
commits: 0,
prs: 0,
issues: 0,
reviews: 0,
repos: 0,
stars: 0,
followers: 0,
@@ -24,11 +25,12 @@ describe("Test calculateRank", () => {
commits: 125,
prs: 25,
issues: 10,
reviews: 5,
repos: 0,
stars: 25,
followers: 5,
}),
).toStrictEqual({ level: "B-", percentile: 69.333868386557 });
).toStrictEqual({ level: "B-", percentile: 65.02918514848255 });
});
it("median user gets B+ rank", () => {
@@ -38,11 +40,12 @@ describe("Test calculateRank", () => {
commits: 250,
prs: 50,
issues: 25,
reviews: 10,
repos: 0,
stars: 50,
followers: 10,
}),
).toStrictEqual({ level: "B+", percentile: 50 });
).toStrictEqual({ level: "B+", percentile: 46.09375 });
});
it("average user gets B+ rank (include_all_commits)", () => {
@@ -52,11 +55,12 @@ describe("Test calculateRank", () => {
commits: 1000,
prs: 50,
issues: 25,
reviews: 10,
repos: 0,
stars: 50,
followers: 10,
}),
).toStrictEqual({ level: "B+", percentile: 50 });
).toStrictEqual({ level: "B+", percentile: 46.09375 });
});
it("advanced user gets A rank", () => {
@@ -66,11 +70,12 @@ describe("Test calculateRank", () => {
commits: 500,
prs: 100,
issues: 50,
reviews: 20,
repos: 0,
stars: 200,
followers: 40,
}),
).toStrictEqual({ level: "A", percentile: 22.72727272727273 });
).toStrictEqual({ level: "A", percentile: 20.841471354166664 });
});
it("expert user gets A+ rank", () => {
@@ -80,11 +85,12 @@ describe("Test calculateRank", () => {
commits: 1000,
prs: 200,
issues: 100,
reviews: 40,
repos: 0,
stars: 800,
followers: 160,
}),
).toStrictEqual({ level: "A+", percentile: 6.082887700534744 });
).toStrictEqual({ level: "A+", percentile: 5.575988339442828 });
});
it("sindresorhus gets S rank", () => {
@@ -94,10 +100,11 @@ describe("Test calculateRank", () => {
commits: 1300,
prs: 1500,
issues: 4500,
reviews: 1000,
repos: 0,
stars: 600000,
followers: 50000,
}),
).toStrictEqual({ level: "S", percentile: 0.49947889605312934 });
).toStrictEqual({ level: "S", percentile: 0.4578556547153667 });
});
});
+2 -1
View File
@@ -16,13 +16,14 @@ const USER = "catelinemnemosyne";
const STATS_DATA = {
name: "Cateline Mnemosyne",
totalPRs: 2,
totalReviews: 0,
totalCommits: 8,
totalIssues: 1,
totalStars: 1,
contributedTo: 1,
rank: {
level: "C",
percentile: 97.89377603631637,
percentile: 98.06929469995667,
},
};
+7
View File
@@ -108,6 +108,7 @@ describe("Test fetchStats", () => {
all_commits: false,
commits: 100,
prs: 300,
reviews: 50,
issues: 200,
repos: 5,
stars: 300,
@@ -141,6 +142,7 @@ describe("Test fetchStats", () => {
all_commits: false,
commits: 100,
prs: 300,
reviews: 50,
issues: 200,
repos: 5,
stars: 300,
@@ -180,6 +182,7 @@ describe("Test fetchStats", () => {
all_commits: true,
commits: 1000,
prs: 300,
reviews: 50,
issues: 200,
repos: 5,
stars: 300,
@@ -210,6 +213,7 @@ describe("Test fetchStats", () => {
all_commits: true,
commits: 1000,
prs: 300,
reviews: 50,
issues: 200,
repos: 5,
stars: 200,
@@ -238,6 +242,7 @@ describe("Test fetchStats", () => {
all_commits: false,
commits: 100,
prs: 300,
reviews: 50,
issues: 200,
repos: 5,
stars: 400,
@@ -266,6 +271,7 @@ describe("Test fetchStats", () => {
all_commits: false,
commits: 100,
prs: 300,
reviews: 50,
issues: 200,
repos: 5,
stars: 300,
@@ -294,6 +300,7 @@ describe("Test fetchStats", () => {
all_commits: false,
commits: 100,
prs: 300,
reviews: 50,
issues: 200,
repos: 5,
stars: 300,