feat(web): render cms pages and navigation from db

This commit is contained in:
2026-02-12 19:58:01 +01:00
parent 281b1d7a1b
commit f65a9ea03f
11 changed files with 273 additions and 75 deletions

View File

@@ -12,6 +12,7 @@ const { mockDb } = vi.hoisted(() => ({
navigationMenu: {
create: vi.fn(),
findMany: vi.fn(),
findFirst: vi.fn(),
},
navigationItem: {
create: vi.fn(),
@@ -29,6 +30,7 @@ import {
createNavigationItem,
createNavigationMenu,
createPage,
listPublicNavigation,
updatePage,
} from "./pages-navigation"
@@ -89,4 +91,33 @@ describe("pages-navigation service", () => {
expect(mockDb.navigationMenu.create).toHaveBeenCalledTimes(1)
expect(mockDb.navigationItem.create).toHaveBeenCalledTimes(1)
})
it("maps public navigation href from linked pages", async () => {
mockDb.navigationMenu.findFirst.mockResolvedValue({
id: "menu-1",
items: [
{
id: "item-1",
label: "Home",
href: null,
parentId: null,
page: {
slug: "home",
status: "published",
},
},
],
})
const navigation = await listPublicNavigation("header")
expect(navigation).toEqual([
{
id: "item-1",
label: "Home",
href: "/",
children: [],
},
])
})
})