diff --git a/tests/top-langs.test.js b/tests/top-langs.test.js index 36a8586028e94..272ee7eabea2b 100644 --- a/tests/top-langs.test.js +++ b/tests/top-langs.test.js @@ -4,7 +4,7 @@ import axios from "axios"; import MockAdapter from "axios-mock-adapter"; import topLangs from "../api/top-langs.js"; import { renderTopLanguages } from "../src/cards/top-languages-card.js"; -import { renderError } from "../src/common/utils.js"; +import { renderError, CONSTANTS } from "../src/common/utils.js"; import { expect, it, describe, afterEach } from "@jest/globals"; const data_langs = { @@ -206,4 +206,27 @@ describe("Test /api/top-langs", () => { renderError("Something went wrong", "Locale not found"), ); }); + + it("should have proper cache", async () => { + const req = { + query: { + username: "anuraghazra", + }, + }; + const res = { + setHeader: jest.fn(), + send: jest.fn(), + }; + mock.onPost("https://api.github.com/graphql").reply(200, data_langs); + + await topLangs(req, res); + + expect(res.setHeader).toBeCalledWith("Content-Type", "image/svg+xml"); + expect(res.setHeader).toBeCalledWith( + "Cache-Control", + `max-age=${CONSTANTS.SIX_HOURS / 2}, s-maxage=${ + CONSTANTS.SIX_HOURS + }, stale-while-revalidate=${CONSTANTS.ONE_DAY}`, + ); + }); });