feat: added hide_langs_below option

This commit is contained in:
anuraghazra 2020-07-21 18:37:16 +05:30
parent 7c104cf8c5
commit 4a8fd03d8d
3 changed files with 24 additions and 1 deletions

View File

@ -11,6 +11,7 @@ const renderTopLanguages = require("../src/renderTopLanguages");
module.exports = async (req, res) => {
const {
username,
hide_langs_below,
hide_title,
card_width,
title_color,
@ -42,6 +43,7 @@ module.exports = async (req, res) => {
theme,
hide_title: parseBoolean(hide_title),
card_width: parseInt(card_width, 10),
hide_langs_below: parseFloat(hide_langs_below, 10),
title_color,
text_color,
bg_color,

View File

@ -30,15 +30,22 @@ const renderTopLanguages = (topLangs, options = {}) => {
title_color,
text_color,
bg_color,
hide_langs_below,
theme,
} = options;
const langs = Object.values(topLangs);
let langs = Object.values(topLangs);
const totalSize = langs.reduce((acc, curr) => {
return acc + curr.size;
}, 0);
// hide langs
langs = langs.filter((lang) => {
if (!hide_langs_below) return true;
return (lang.size / totalSize) * 100 > hide_langs_below;
});
// returns theme based colors with proper overrides and defaults
const { titleColor, textColor, bgColor } = getCardColors({
title_color,

View File

@ -58,6 +58,20 @@ describe("Test renderTopLanguages", () => {
);
});
it("should hide_langs_below", () => {
document.body.innerHTML = renderTopLanguages(langs, {
hide_langs_below: 34,
});
expect(queryAllByTestId(document.body, "lang-name")[0]).toBeInTheDocument(
"HTML"
);
expect(queryAllByTestId(document.body, "lang-name")[1]).toBeInTheDocument(
"javascript"
);
expect(queryAllByTestId(document.body, "lang-name")[2]).not.toBeDefined();
});
it("should resize the height correctly depending on langs", () => {
document.body.innerHTML = renderTopLanguages(langs, {});
expect(document.querySelector("svg")).toHaveAttribute("height", "205");