From 053ff0568d0d4cd2c016b36efa72097388004d6c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 2 Jun 2025 18:08:21 +0300 Subject: [PATCH] test(etapi): port app-info --- _regroup/test-etapi/app-info.http | 7 ------- apps/server/spec/etapi/app-info.spec.ts | 20 ++++++++++++++++++++ apps/server/spec/etapi/utils.ts | 15 +++++++++++++++ apps/server/spec/setup.ts | 2 ++ apps/server/vite.config.mts | 2 +- 5 files changed, 38 insertions(+), 8 deletions(-) delete mode 100644 _regroup/test-etapi/app-info.http create mode 100644 apps/server/spec/etapi/app-info.spec.ts create mode 100644 apps/server/spec/etapi/utils.ts diff --git a/_regroup/test-etapi/app-info.http b/_regroup/test-etapi/app-info.http deleted file mode 100644 index a851005c2..000000000 --- a/_regroup/test-etapi/app-info.http +++ /dev/null @@ -1,7 +0,0 @@ -GET {{triliumHost}}/etapi/app-info -Authorization: {{authToken}} - -> {% - client.assert(response.status === 200); - client.assert(response.body.clipperProtocolVersion === "1.0"); -%} diff --git a/apps/server/spec/etapi/app-info.spec.ts b/apps/server/spec/etapi/app-info.spec.ts new file mode 100644 index 000000000..03a5a389b --- /dev/null +++ b/apps/server/spec/etapi/app-info.spec.ts @@ -0,0 +1,20 @@ +import { Application } from "express"; +import { beforeAll, describe, expect, it } from "vitest"; +import buildApp from "../../src/app.js"; +import supertest from "supertest"; + +let app: Application; +let token: string; + +describe("etapi/app-info", () => { + beforeAll(async () => { + app = await buildApp(); + }); + + it("retrieves correct app info", async () => { + const response = await supertest(app) + .get("/etapi/app-info") + .expect(200); + expect(response.body.clipperProtocolVersion).toBe("1.0"); + }); +}); diff --git a/apps/server/spec/etapi/utils.ts b/apps/server/spec/etapi/utils.ts new file mode 100644 index 000000000..40895648f --- /dev/null +++ b/apps/server/spec/etapi/utils.ts @@ -0,0 +1,15 @@ +import type { Application } from "express"; +import supertest from "supertest"; +import { expect } from "vitest"; + +export async function login(app: Application) { + // Obtain auth token. + const response = await supertest(app) + .post("/etapi/auth/login") + .send({ + "password": "demo1234" + }) + .expect(201); + const token = response.body.authToken; + expect(token).toBeTruthy(); +} diff --git a/apps/server/spec/setup.ts b/apps/server/spec/setup.ts index b2b6a2a71..74e7ff746 100644 --- a/apps/server/spec/setup.ts +++ b/apps/server/spec/setup.ts @@ -7,6 +7,8 @@ import dayjs from "dayjs"; process.env.TRILIUM_DATA_DIR = join(__dirname, "db"); process.env.TRILIUM_RESOURCE_DIR = join(__dirname, "../src"); process.env.TRILIUM_INTEGRATION_TEST = "memory"; +process.env.TRILIUM_ENV = "dev"; +process.env.TRILIUM_PUBLIC_SERVER = "http://localhost:4200"; beforeAll(async () => { // Initialize the translations manually to avoid any side effects. diff --git a/apps/server/vite.config.mts b/apps/server/vite.config.mts index eae95a616..0f290b08e 100644 --- a/apps/server/vite.config.mts +++ b/apps/server/vite.config.mts @@ -10,7 +10,7 @@ export default defineConfig(() => ({ globals: true, setupFiles: ["./spec/setup.ts"], environment: "node", - include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], + include: ['{src,spec}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'], reporters: ['default'], coverage: { reportsDirectory: './test-output/vitest/coverage',