diff --git a/tests/i18n.test.js b/tests/i18n.test.js new file mode 100644 index 0000000..0466682 --- /dev/null +++ b/tests/i18n.test.js @@ -0,0 +1,33 @@ +import { expect, it, describe } from "@jest/globals"; +import { I18n } from "../src/common/I18n.js"; +import { statCardLocales } from "../src/translations.js"; + +describe("I18n", () => { + it("should return translated string", () => { + const i18n = new I18n({ + locale: "en", + translations: statCardLocales({ name: "Anurag Hazra", apostrophe: "s" }), + }); + expect(i18n.t("statcard.title")).toBe("Anurag Hazra's GitHub Stats"); + }); + + it("should throw error if translation string not found", () => { + const i18n = new I18n({ + locale: "en", + translations: statCardLocales({ name: "Anurag Hazra", apostrophe: "s" }), + }); + expect(() => i18n.t("statcard.title1")).toThrow( + "statcard.title1 Translation string not found", + ); + }); + + it("should throw error if translation not found for locale", () => { + const i18n = new I18n({ + locale: "asdf", + translations: statCardLocales({ name: "Anurag Hazra", apostrophe: "s" }), + }); + expect(() => i18n.t("statcard.title")).toThrow( + "'statcard.title' translation not found for locale 'asdf'", + ); + }); +});