import request from "../../../../app/tests/request"; import { A_USER_BEARER } from "../../../../utils/tests/jwtUtils"; import { SOME_DATE, SOME_LANGUAGE, SOME_OTHER_LANGUAGE, } from "../../../../utils/tests/testData"; import withDatabase from "../../../../utils/tests/withDatabase"; import { persistMultipleLanguageSuggestions, persistOldAndNewSuggestions, } from "./getLanguageOverview.driver"; const getLanguagesOverview = () => request.get("/overview/team/languages").set("Authorization", A_USER_BEARER); describe("GET /overview/team/languages", () => { withDatabase(); it("Given no data Then return empty values", async () => { const response = await getLanguagesOverview(); expect(response.status).toEqual(200); expect(response.body).toMatchObject({ languages: [], }); }); it("Given suggestions for multiple languages Then return the aggregated total correctly", async () => { await persistMultipleLanguageSuggestions(); const response = await getLanguagesOverview(); expect(response.status).toEqual(200); expect(response.body).toMatchObject({ languages: [ { language: SOME_LANGUAGE, total: 2, }, { language: SOME_OTHER_LANGUAGE, total: 1, }, ], }); }); it("Given old and new suggestions Then return the aggregated total correctly for the correct period", async () => { await persistOldAndNewSuggestions(); const response = await getLanguagesOverview().query({ after: SOME_DATE, }); expect(response.status).toEqual(200); expect(response.body).toMatchObject({ languages: [ { language: SOME_LANGUAGE, total: 1, }, ], }); }); });