From ac18d9795457a7f28b71129e484757ad61d3482e Mon Sep 17 00:00:00 2001 From: vagdotdev Date: Tue, 30 Jun 2026 12:15:26 +0530 Subject: [PATCH 1/2] fix: correct admin dashboard links --- routes/admin/index.ts | 4 ++-- tests/routes/admin-index.test.ts | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 tests/routes/admin-index.test.ts diff --git a/routes/admin/index.ts b/routes/admin/index.ts index a1ec637..bd33614 100644 --- a/routes/admin/index.ts +++ b/routes/admin/index.ts @@ -17,10 +17,10 @@ export default withRouteSpec({ diff --git a/tests/routes/admin-index.test.ts b/tests/routes/admin-index.test.ts new file mode 100644 index 0000000..83486b1 --- /dev/null +++ b/tests/routes/admin-index.test.ts @@ -0,0 +1,20 @@ +import { test, expect } from "bun:test" +import { getTestServer } from "tests/fixtures/get-test-server" + +test("admin dashboard links resolve to existing admin routes", async () => { + const { axios } = await getTestServer() + + const res = await axios.get("/admin") + const html = res.data as string + + expect(html).toContain('href="./files/list"') + expect(html).toContain('href="./events/list"') + expect(html).not.toContain('href="./admin/files/list"') + expect(html).not.toContain('href="./admin/events/list"') + + const filesRes = await axios.get("/admin/files/list") + expect(filesRes.status).toBe(200) + + const eventsRes = await axios.get("/admin/events/list") + expect(eventsRes.status).toBe(200) +}) From 418acb77dc2cfc0366986fa03d2df294d29aa769 Mon Sep 17 00:00:00 2001 From: vagdotdev Date: Tue, 30 Jun 2026 12:17:18 +0530 Subject: [PATCH 2/2] test: bind test server to ephemeral port --- tests/fixtures/get-test-server.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tests/fixtures/get-test-server.ts b/tests/fixtures/get-test-server.ts index 7063c41..e58f9ed 100644 --- a/tests/fixtures/get-test-server.ts +++ b/tests/fixtures/get-test-server.ts @@ -1,5 +1,4 @@ import { afterEach } from "bun:test" -import { tmpdir } from "node:os" import defaultAxios from "redaxios" import { startServer } from "./start-server" @@ -10,16 +9,15 @@ interface TestFixture { } export const getTestServer = async (): Promise => { - const port = 3001 + Math.floor(Math.random() * 999) const testInstanceId = Math.random().toString(36).substring(2, 15) const testDbName = `testdb${testInstanceId}` const server = await startServer({ - port, + port: 0, testDbName, }) - const url = `http://127.0.0.1:${port}` + const url = `http://127.0.0.1:${server.port}` const axios = defaultAxios.create({ baseURL: url, })