From 28fa0b8877ab0dd7a220440d2a2508245f403959 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Tyrkk=C3=B6?= Date: Fri, 5 Nov 2021 16:19:51 +0200 Subject: [PATCH] fix: bug where wakatime api returns undefined languages (#1403) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Markus Tyrkkö --- src/cards/wakatime-card.js | 4 ++-- tests/renderWakatimeCard.test.js | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/cards/wakatime-card.js b/src/cards/wakatime-card.js index 54093ec..905e40a 100644 --- a/src/cards/wakatime-card.js +++ b/src/cards/wakatime-card.js @@ -123,7 +123,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => { } = options; const shouldHideLangs = Array.isArray(hide) && hide.length > 0; - if (shouldHideLangs) { + if (shouldHideLangs && languages !== undefined) { const languagesToHide = new Set(hide.map((lang) => lowercaseTrim(lang))); languages = languages.filter( (lang) => !languagesToHide.has(lowercaseTrim(lang.name)), @@ -138,7 +138,7 @@ const renderWakatimeCard = (stats = {}, options = { hide: [] }) => { const lheight = parseInt(line_height, 10); - langsCount = clampValue(parseInt(langs_count), 1, langs_count); + const langsCount = clampValue(parseInt(langs_count), 1, langs_count); // returns theme based colors with proper overrides and defaults const { diff --git a/tests/renderWakatimeCard.test.js b/tests/renderWakatimeCard.test.js index 658c52d..51d63e6 100644 --- a/tests/renderWakatimeCard.test.js +++ b/tests/renderWakatimeCard.test.js @@ -46,4 +46,12 @@ describe("Test Render Wakatime Card", () => { document.body.innerHTML = renderWakatimeCard(wakaTimeData.data, {}); expect(document.querySelector("rect")).toHaveAttribute("rx", "4.5"); }); + + it('should show "no coding activitiy this week" message when there hasn not been activity', () => { + document.body.innerHTML = renderWakatimeCard({ + ...wakaTimeData.data, + languages: undefined + }, {}); + expect(document.querySelector(".stat").textContent).toBe("No coding activity this week") + }) });