2.3 KiB
2.3 KiB
title
| title |
|---|
| Pagebuilder |
Pagebuilder
Scope
- Pagebuilder thumbnail and live-preview rendering in project t1
- FK lookup hydration for block registries and mock/demo blocks
- URL normalization for linked media in pagebuilder rows
Prerequisites
- Run in mock mode only
- Use project t1
- Relevant spec: tests/e2e/pagebuilder.spec.ts
Test Cases
| ID | Description | Expected Result | Priority |
|---|---|---|---|
| PB-32 | Hero preview without explicit bgImage uses linked mediaRef lookup | Thumbnail/live preview renders the linked media image instead of an empty background | High |
| PB-36b | Direct image-widget block in editor_lab pageContent | Before save, the live thumbnail renders the direct block image source in live mode and the mock placeholder variant in mock mode; after save, the generated screenshot replaces the raw image source | High |
| PB-40b | Lookup normalization receives a data: or blob: media URL | Inline media URI stays unchanged and is not prefixed with /api/_// | High |
| PB-40c | Existing server-style nested _lookup entries in pagebuilder rows are hydrated for preview |
Pagebuilder hydration rewrites nested lookup file.src values to absolute admin URLs without changing the underlying mock/API payload shape |
High |
| PB-35b | Nested object[] items inside a pagebuilder block use FK/foreignFile lookups | Thumbnail/live preview resolves indexed paths like slides.0.image into the correct child item instead of leaving nested media unresolved | High |
Edge Cases
- Newly uploaded media may exist as data URI before backend persistence; pagebuilder previews must still render it.
- Direct file/image widgets inside screenshot-enabled pagebuilder blocks must be included in both live thumbnail rendering and saved screenshot generation.
- Blob URLs from client-side editors or upload flows must remain browser-local and must not be rewritten.
- Lookup embedding must honor numeric path segments for nested object[] descendants inside pagebuilder blocks.
- Existing server-style
_lookuppayloads inside pagebuilder rows must stay server-style in mock/API data, but preview hydration still has to absolutize nestedfile.srcvalues for admin rendering.
Accessibility
- Thumbnail previews remain decorative only; no additional focus targets are introduced by the media rendering path.