aboutsummaryrefslogtreecommitdiff
path: root/src/scraper.test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/scraper.test.ts')
-rw-r--r--src/scraper.test.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/scraper.test.ts b/src/scraper.test.ts
index 56f14b0..5b5e78b 100644
--- a/src/scraper.test.ts
+++ b/src/scraper.test.ts
@@ -4,6 +4,7 @@ import {
getGitHubBlob,
getGitHubCommits,
getGitHubIssues,
+ getGitHubLanguages,
getGitHubLatestCommit,
getGitHubPulls,
getGitHubRefs,
@@ -219,6 +220,33 @@ describe("GitHub scraper", () => {
assert.ok(data.commit.authors.length > 0);
});
+ it("should fetch languages", async () => {
+ const data = await getGitHubLanguages("actions", "deploy-pages");
+
+ assert.strictEqual(data.repo.owner, "actions");
+ assert.strictEqual(data.repo.name, "deploy-pages");
+
+ assert.deepStrictEqual(data.languages, [
+ { name: "JavaScript", percentage: 100, color: "#f1e05a" },
+ ]);
+ });
+
+ it("should fetch languages for a multi-language repository", async () => {
+ const data = await getGitHubLanguages("rust-lang", "rust");
+
+ const rust = data.languages.find((language) => language.name === "Rust");
+ assert.ok(rust);
+ assert.ok(rust.percentage > 50);
+ assert.strictEqual(rust.color, "#dea584");
+
+ // The aggregate bucket comes back without a name.
+ const other = data.languages.find((language) => language.name === "Other");
+ assert.ok(other);
+
+ const total = data.languages.reduce((sum, language) => sum + language.percentage, 0);
+ assert.ok(Math.abs(total - 100) < 1);
+ });
+
it("should fetch branches", async () => {
const data = await getGitHubRefs("actions", "deploy-pages", "branches");