diff --git a/src/views/projects/router.ts b/src/views/projects/router.ts index 1ddea8a15..08853dce3 100644 --- a/src/views/projects/router.ts +++ b/src/views/projects/router.ts @@ -943,7 +943,9 @@ export function projectTitle(loadedRoute: ProjectLoadedRoute) { if (loadedRoute.resource === "project.source") { title.push(loadedRoute.params.project.name); - title.push(loadedRoute.params.project.description); + if (loadedRoute.params.project.description.length > 0) { + title.push(loadedRoute.params.project.description); + } } else if (loadedRoute.resource === "project.commit") { title.push(loadedRoute.params.commit.commit.summary); title.push("commit"); diff --git a/tests/e2e/historyRouter.spec.ts b/tests/e2e/historyRouter.spec.ts index 5e6340cc5..d6fb4f985 100644 --- a/tests/e2e/historyRouter.spec.ts +++ b/tests/e2e/historyRouter.spec.ts @@ -6,6 +6,7 @@ import { sourceBrowsingUrl, test, } from "@tests/support/fixtures.js"; +import { createProject } from "@tests/support/project"; import { expectBackAndForwardNavigationWorks, expectUrlPersistsReload, @@ -112,6 +113,30 @@ test.describe("project page navigation", () => { await expectUrlPersistsReload(page); }); + test("page title", async ({ page }) => { + await page.goto(sourceBrowsingUrl, { + waitUntil: "networkidle", + }); + const title = await page.title(); + expect(title).toBe( + "source-browsing ยท Git repository for source browsing tests", + ); + }); + + test("page title on project with empty description", async ({ + page, + authenticatedPeer, + }) => { + const { rid } = await createProject(authenticatedPeer, { + name: "ProjectWithNoDescription", + }); + await page.goto(authenticatedPeer.ridUrl(rid), { + waitUntil: "networkidle", + }); + const title = await page.title(); + expect(title).toBe("ProjectWithNoDescription"); + }); + test("navigate project paths with an explicitly selected peer", async ({ page, }) => {