Stress test of the DTK Image component. Each row uses a fixed
Renderable fixture (Payload API shape) in a container it
wasn't designed for — the component must coerce. Inline checks give a
pass/fail per breakpoint; image-behavior.e2e.spec.ts is the
authoritative regression suite.
Baseline: 16:9 source in a full-width column. Sizes should resolve to the col-full preset.
Half-width at large+. Sizes string should reflect the col-half breakpoint chain.
col-quarter preset should resolve to multiple breakpoints — never a flat 25vw.
Edge-to-edge hero (LCP candidate). Sizes = 100vw, loading=eager, fetchpriority=high.
Immersive bleed past grid margins — sizes should cap at viewport-width breakpoints.
16:9 source, 1:1 container. Container aspect enforced; default cover crops to square.
Free-aspect source at natural shape. Intrinsic dims should match the largest slot.
Free source forced into 16:9 — tests object-fit cover cropping with default focal.
Free source cropped into portrait 2:3 — stress test of the tall-crop path.
Same container as above with focal pushed to bottom-left. Computed object-position should read 10%/90%.
2:3 poster in narrow column — the MoviePosterCard pattern.
2:3 source at 100vw — deliberately extreme. Tests that object-fit cover fills the box instead of letterboxing.
Explicit priority=high value (not boolean). loading=eager + fetchpriority=high.
Caller passes objectFit=contain. Image letterboxes inside the 1:1 box instead of cropping.
3-second artificial delay exposes placeholder UX. CSS var inherits; placeholder class flips on load.
Slots are single-color WebPs at free-responsive widths (sm=640/md=1024/lg=1440/xl=2048/xxl=2880). With sizes=100vw the browser picks one slot per project breakpoint (base→sm, medium→md, large→lg, xlarge→xl). Resize — fill color + badge flip together.
Five cells, one per slot — bypass the srcset picker. Authoritative proof that the adapter emits five distinct renditions.