Skip to content

Commit

Permalink
[pull] master from anuraghazra:master (#65)
Browse files Browse the repository at this point in the history
* refactor: fix typos in a comment (anuraghazra#3437)

* Fix typos in a comment

* Add a comma

* infra: enable no-class-assign eslint rule (anuraghazra#3451)

* infra: enable no-const-assign eslint rule (anuraghazra#3452)

* infra: enable no-dupe-class-members eslint rule (anuraghazra#3456)

* tests(wakatime-fetcher): fix brand casing (anuraghazra#3455)

* tests: add basic wakatime endpoint test (anuraghazra#3454)

---------

Co-authored-by: Wertzui123 <[email protected]>
Co-authored-by: Alexandr Garbuzov <[email protected]>
  • Loading branch information
3 people authored Nov 6, 2023
1 parent 2ddcd9c commit a2f2733
Show file tree
Hide file tree
Showing 4 changed files with 128 additions and 5 deletions.
6 changes: 3 additions & 3 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,9 @@
// "constructor-super": "error",
// "generator-star-spacing": [ "error", "before" ],
// "no-arrow-condition": "error",
// "no-class-assign": "error",
// "no-const-assign": "error",
// "no-dupe-class-members": "error",
"no-class-assign": "error",
"no-const-assign": "error",
"no-dupe-class-members": "error",
"no-this-before-super": "error",
// "no-var": "warn",
"object-shorthand": [ "warn" ],
Expand Down
2 changes: 1 addition & 1 deletion src/cards/stats-card.js
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ const createTextNode = ({
};

/**
* Calculates progress along the boundary of the circle i.e it's circumference.
* Calculates progress along the boundary of the circle, i.e. its circumference.
*
* @param {number} value The rank value to calculate progress for.
* @returns {number} Progress value.
Expand Down
2 changes: 1 addition & 1 deletion tests/fetchWakatime.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ const wakaTimeData = {
};

describe("WakaTime fetcher", () => {
it("should fetch correct wakatime data", async () => {
it("should fetch correct WakaTime data", async () => {
const username = "anuraghazra";
mock
.onGet(
Expand Down
123 changes: 123 additions & 0 deletions tests/wakatime.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
import { jest } from "@jest/globals";
import "@testing-library/jest-dom";
import axios from "axios";
import MockAdapter from "axios-mock-adapter";
import wakatime from "../api/wakatime.js";
import { renderWakatimeCard } from "../src/cards/wakatime-card.js";
import { expect, it, describe, afterEach } from "@jest/globals";

const wakaTimeData = {
data: {
categories: [
{
digital: "22:40",
hours: 22,
minutes: 40,
name: "Coding",
percent: 100,
text: "22 hrs 40 mins",
total_seconds: 81643.570077,
},
],
daily_average: 16095,
daily_average_including_other_language: 16329,
days_including_holidays: 7,
days_minus_holidays: 5,
editors: [
{
digital: "22:40",
hours: 22,
minutes: 40,
name: "VS Code",
percent: 100,
text: "22 hrs 40 mins",
total_seconds: 81643.570077,
},
],
holidays: 2,
human_readable_daily_average: "4 hrs 28 mins",
human_readable_daily_average_including_other_language: "4 hrs 32 mins",
human_readable_total: "22 hrs 21 mins",
human_readable_total_including_other_language: "22 hrs 40 mins",
id: "random hash",
is_already_updating: false,
is_coding_activity_visible: true,
is_including_today: false,
is_other_usage_visible: true,
is_stuck: false,
is_up_to_date: true,
languages: [
{
digital: "0:19",
hours: 0,
minutes: 19,
name: "Other",
percent: 1.43,
text: "19 mins",
total_seconds: 1170.434361,
},
{
digital: "0:01",
hours: 0,
minutes: 1,
name: "TypeScript",
percent: 0.1,
text: "1 min",
total_seconds: 83.293809,
},
{
digital: "0:00",
hours: 0,
minutes: 0,
name: "YAML",
percent: 0.07,
text: "0 secs",
total_seconds: 54.975151,
},
],
operating_systems: [
{
digital: "22:40",
hours: 22,
minutes: 40,
name: "Mac",
percent: 100,
text: "22 hrs 40 mins",
total_seconds: 81643.570077,
},
],
percent_calculated: 100,
range: "last_7_days",
status: "ok",
timeout: 15,
total_seconds: 80473.135716,
total_seconds_including_other_language: 81643.570077,
user_id: "random hash",
username: "anuraghazra",
writes_only: false,
},
};

const mock = new MockAdapter(axios);

afterEach(() => {
mock.reset();
});

describe("Test /api/wakatime", () => {
it("should test the request", async () => {
const username = "anuraghazra";
const req = { query: { username } };
const res = { setHeader: jest.fn(), send: jest.fn() };
mock
.onGet(
`https://wakatime.com/api/v1/users/${username}/stats?is_including_today=true`,
)
.reply(200, wakaTimeData);

await wakatime(req, res);

expect(res.setHeader).toBeCalledWith("Content-Type", "image/svg+xml");
expect(res.send).toBeCalledWith(renderWakatimeCard(wakaTimeData.data, {}));
});
});

1 comment on commit a2f2733

@vercel
Copy link

@vercel vercel bot commented on a2f2733 Nov 6, 2023

Choose a reason for hiding this comment

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

Please sign in to comment.