From af3a0cc05a80f8ef085d81c075b62cc4cd667517 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Tue, 15 Apr 2025 09:31:02 +0200 Subject: [PATCH] test(routes/login): add initial test via supertest for failed login --- src/routes/login.spec.ts | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 src/routes/login.spec.ts diff --git a/src/routes/login.spec.ts b/src/routes/login.spec.ts new file mode 100644 index 000000000..395119de7 --- /dev/null +++ b/src/routes/login.spec.ts @@ -0,0 +1,36 @@ +import { beforeAll, describe, it } from "vitest"; +import supertest from "supertest"; +import { initializeTranslations } from "../services/i18n.js"; +import type { Application, Request, Response, NextFunction } from "express"; + +let app: Application; + +describe("Login Route test", () => { + + beforeAll(async () => { + initializeTranslations(); + app = (await import("../app.js")).default; + }); + + it("return a 401 status, when login fails with wrong password", async () => { + + await supertest(app) + .post("/login") + .send({ password: "fakePassword" }) + .expect(401) + + }); + + // TriliumNextTODO: how to handle different configs here? e.g. TOTP, or different cookieMaxAge from config.ini + + /* + + it("sets correct Expires, when 'Remember Me' is ticked", async () => { + await supertest(app) + .post("/login") + .expect(302) + .expect("Set-Cookie", "trilium.sid=trilium.sid; Path=/; Expires=TODO"); + }); + + */ +}); \ No newline at end of file