From b39119119be5cac3931579f90b0f61fe08eb51fb Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 5 Jun 2025 14:32:25 +0300 Subject: [PATCH] fix(share): custom share templates no longer working --- apps/server/spec/db/document.db | Bin 1187840 -> 1191936 bytes apps/server/src/share/routes.spec.ts | 9 +++++++++ apps/server/src/share/routes.ts | 11 +++++------ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/apps/server/spec/db/document.db b/apps/server/spec/db/document.db index c1000f7f988a548f4e25a3ab2a144edaf8d3ec40..50b477ea789659af6d151501d50d32324c86df13 100644 GIT binary patch delta 9126 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 delta 4948 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 diff --git a/apps/server/src/share/routes.spec.ts b/apps/server/src/share/routes.spec.ts index 3cde4be23..987d1b12a 100644 --- a/apps/server/src/share/routes.spec.ts +++ b/apps/server/src/share/routes.spec.ts @@ -33,4 +33,13 @@ describe("Share API test", () => { expect(cannotSetHeadersCount).toBe(0); }); + it("renders custom share template", async () => { + const response = await supertest(app) + .get("/share/pQvNLLoHcMwH") + .expect(200); + expect(cannotSetHeadersCount).toBe(0); + expect(response.text).toContain("Content Start"); + expect(response.text).toContain("Content End"); + }); + }); diff --git a/apps/server/src/share/routes.ts b/apps/server/src/share/routes.ts index 752f8a621..614cd2101 100644 --- a/apps/server/src/share/routes.ts +++ b/apps/server/src/share/routes.ts @@ -136,7 +136,7 @@ function renderImageAttachment(image: SNote, res: Response, attachmentName: stri } function register(router: Router) { - function renderNote(note: SNote, req: Request, res: Response) { + async function renderNote(note: SNote, req: Request, res: Response) { if (!note) { console.log("Unable to find note ", note); res.status(404).render("share/404"); @@ -197,11 +197,10 @@ function register(router: Router) { try { const content = templateNote.getContent(); if (typeof content === "string") { - import("ejs").then((ejs) => { - const ejsResult = ejs.render(content, opts, { includer }); - res.send(ejsResult); - useDefaultView = false; // Rendering went okay, don't use default view - }); + const ejs = await import("ejs"); + const ejsResult = ejs.render(content, opts, { includer }); + res.send(ejsResult); + useDefaultView = false; // Rendering went okay, don't use default view } } catch (e: unknown) { const [errMessage, errStack] = safeExtractMessageAndStackFromError(e);