From 43876deefc9a7911a3a6be88cfd1e85321645cf2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 28 Apr 2025 17:30:58 +0300 Subject: [PATCH] chore(test/server): always initialize translations --- apps/server/spec/setup.ts | 20 +++++++++++++++++++ apps/server/src/routes/login.spec.ts | 2 -- .../server/src/services/import/single.spec.ts | 2 -- apps/server/src/services/import/zip.spec.ts | 2 -- apps/server/src/share/routes.spec.ts | 2 -- apps/server/vite.config.ts | 1 + 6 files changed, 21 insertions(+), 8 deletions(-) create mode 100644 apps/server/spec/setup.ts diff --git a/apps/server/spec/setup.ts b/apps/server/spec/setup.ts new file mode 100644 index 000000000..a371b2cca --- /dev/null +++ b/apps/server/spec/setup.ts @@ -0,0 +1,20 @@ +import { beforeAll } from "vitest"; +import { getResourceDir } from "../src/services/utils.js"; +import i18next from "i18next"; +import { join } from "path"; + +beforeAll(async () => { + // Initialize the translations manually to avoid any side effects. + const resourceDir = getResourceDir(); + const Backend = (await import("i18next-fs-backend")).default; + + // Initialize translations + await i18next.use(Backend).init({ + lng: "en", + fallbackLng: "en", + ns: "server", + backend: { + loadPath: join(resourceDir, "assets/translations/{{lng}}/{{ns}}.json") + } + }); +}); diff --git a/apps/server/src/routes/login.spec.ts b/apps/server/src/routes/login.spec.ts index 1c921168a..a070a3d5a 100644 --- a/apps/server/src/routes/login.spec.ts +++ b/apps/server/src/routes/login.spec.ts @@ -1,6 +1,5 @@ import { beforeAll, describe, expect, it } from "vitest"; import supertest from "supertest"; -import { initializeTranslations } from "../services/i18n.js"; import type { Application } from "express"; import dayjs from "dayjs"; @@ -9,7 +8,6 @@ let app: Application; describe("Login Route test", () => { beforeAll(async () => { - initializeTranslations(); const buildApp = (await import("../app.js")).default; app = await buildApp(); }); diff --git a/apps/server/src/services/import/single.spec.ts b/apps/server/src/services/import/single.spec.ts index e26934b08..b16124cbb 100644 --- a/apps/server/src/services/import/single.spec.ts +++ b/apps/server/src/services/import/single.spec.ts @@ -8,7 +8,6 @@ import BNote from "../../becca/entities/bnote.js"; import TaskContext from "../task_context.js"; import cls from "../cls.js"; import sql_init from "../sql_init.js"; -import { initializeTranslations } from "../i18n.js"; import single from "./single.js"; import stripBom from "strip-bom"; const scriptDir = dirname(fileURLToPath(import.meta.url)); @@ -53,7 +52,6 @@ describe("processNoteContent", () => { }; }); - initializeTranslations(); sql_init.initializeDb(); await sql_init.dbReady; }); diff --git a/apps/server/src/services/import/zip.spec.ts b/apps/server/src/services/import/zip.spec.ts index 112b089d5..935b13f65 100644 --- a/apps/server/src/services/import/zip.spec.ts +++ b/apps/server/src/services/import/zip.spec.ts @@ -9,7 +9,6 @@ import BNote from "../../becca/entities/bnote.js"; import TaskContext from "../task_context.js"; import cls from "../cls.js"; import sql_init from "../sql_init.js"; -import { initializeTranslations } from "../i18n.js"; import { trimIndentation } from "@triliumnext/commons"; const scriptDir = dirname(fileURLToPath(import.meta.url)); @@ -45,7 +44,6 @@ describe("processNoteContent", () => { }; }); - initializeTranslations(); sql_init.initializeDb(); await sql_init.dbReady; }); diff --git a/apps/server/src/share/routes.spec.ts b/apps/server/src/share/routes.spec.ts index 8c8567f32..3cde4be23 100644 --- a/apps/server/src/share/routes.spec.ts +++ b/apps/server/src/share/routes.spec.ts @@ -1,6 +1,5 @@ import { beforeAll, beforeEach, describe, expect, it } from "vitest"; import supertest from "supertest"; -import { initializeTranslations } from "../services/i18n.js"; import type { Application, Request, Response, NextFunction } from "express"; import { safeExtractMessageAndStackFromError } from "../services/utils.js"; @@ -10,7 +9,6 @@ describe("Share API test", () => { let cannotSetHeadersCount = 0; beforeAll(async () => { - initializeTranslations(); const buildApp = (await import("../app.js")).default; app = await buildApp(); app.use((err: unknown, req: Request, res: Response, next: NextFunction) => { diff --git a/apps/server/vite.config.ts b/apps/server/vite.config.ts index a46fe073d..eae95a616 100644 --- a/apps/server/vite.config.ts +++ b/apps/server/vite.config.ts @@ -8,6 +8,7 @@ export default defineConfig(() => ({ test: { watch: false, globals: true, + setupFiles: ["./spec/setup.ts"], environment: "node", include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], reporters: ['default'],