From 49800c3cc2976d4fb95747ed83a05574021b9415 Mon Sep 17 00:00:00 2001 From: Adrian Bonpin Date: Mon, 25 May 2026 19:42:05 +0800 Subject: [PATCH] =?UTF-8?q?test:=20final=20metadata=20integration=20sweep?= =?UTF-8?q?=20=E2=80=94=20verify=20all=20page=20titles=20(Task=2011)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/__tests__/metadata.test.ts | 43 ++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/app/__tests__/metadata.test.ts b/app/__tests__/metadata.test.ts index f3fba05..49a67fd 100644 --- a/app/__tests__/metadata.test.ts +++ b/app/__tests__/metadata.test.ts @@ -95,25 +95,42 @@ describe("Page Metadata", () => { describe("Compare layout", () => { it("exports unique title and description", async () => { - try { - const { metadata } = await import("@/app/compare/layout") - expect(metadata.title).toBe("Compare Games") - expect(metadata.description).toBeDefined() - } catch { - throw new Error("app/compare/layout.tsx not created yet") - } + const { metadata } = await import("@/app/compare/layout") + expect(metadata.title).toBe("Compare Games") + expect(metadata.description).toBeDefined() }) }) describe("Profile layout", () => { it("exports unique title and description", async () => { - try { - const { metadata } = await import("@/app/profile/layout") - expect(metadata.title).toBe("Profile") - expect(metadata.description).toBeDefined() - } catch { - throw new Error("app/profile/layout.tsx not created yet") + const { metadata } = await import("@/app/profile/layout") + expect(metadata.title).toBe("Profile") + expect(metadata.description).toBeDefined() + }) + }) + + describe("End-to-end metadata consolidation", () => { + it("all public pages have unique titles", async () => { + const pages = [ + { name: "layout", expected: "DeckyVault - Steam Deck Benchmarks & Settings" }, + { name: "games/page", expected: "Games" }, + { name: "devices/page", expected: "Devices" }, + { name: "compare/layout", expected: "Compare Games" }, + ] + + const titles = new Set() + for (const page of pages) { + const mod = await import(`@/app/${page.name}`) + const actualTitle = mod.metadata.title?.default ?? mod.metadata.title + expect(actualTitle).toBe(page.expected) + const resolvedTitle = page.name === "layout" + ? actualTitle + : `${actualTitle} | DeckyVault` + titles.add(resolvedTitle) } + + expect(titles.has("DeckyVault - Steam Deck Benchmarks & Settings")).toBe(true) + expect(titles.size).toBe(pages.length) }) }) }) \ No newline at end of file