From cc0e30e3f559404c8392df93bfb7ebbf4365b385 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 16 Nov 2025 21:18:34 +0200 Subject: [PATCH] test(ckeditor): test all languages are mapped correctly --- .../widgets/type_widgets/text/config.spec.ts | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 apps/client/src/widgets/type_widgets/text/config.spec.ts diff --git a/apps/client/src/widgets/type_widgets/text/config.spec.ts b/apps/client/src/widgets/type_widgets/text/config.spec.ts new file mode 100644 index 000000000..5e85bab3b --- /dev/null +++ b/apps/client/src/widgets/type_widgets/text/config.spec.ts @@ -0,0 +1,39 @@ +import { DISPLAYABLE_LOCALE_IDS, LOCALES } from "@triliumnext/commons"; +import { describe, expect, it, vi } from "vitest"; + +vi.mock('../../../services/options.js', () => ({ + default: { + get(name: string) { + if (name === "allowedHtmlTags") return "[]"; + return undefined; + }, + getJson: () => [] + } +})); + +describe("CK config", () => { + it("maps all languages correctly", async () => { + const { buildConfig } = await import("./config.js"); + for (const locale of LOCALES) { + if (locale.contentOnly || locale.devOnly) continue; + + const config = await buildConfig({ + uiLanguage: locale.id as DISPLAYABLE_LOCALE_IDS, + contentLanguage: locale.id, + forceGplLicense: false, + isClassicEditor: false, + templates: [] + }); + + let expectedLocale = locale.id.substring(0, 2); + if (expectedLocale === "cn") expectedLocale = "zh"; + if (expectedLocale === "tw") expectedLocale = "zh-tw"; + + if (locale.id !== "en") { + expect((config.language as any).ui).toMatch(new RegExp(`^${expectedLocale}`)); + expect(config.translations, locale.id).toBeDefined(); + expect(config.translations, locale.id).toHaveLength(2); + } + } + }); +});