You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CLAUDE.md
+2-16Lines changed: 2 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -558,12 +558,6 @@ $topicBuilder->onRoutesCreated(function (array $childBuilders) use ($intro) {
558
558
559
559
These are known open issues with enough context to resume work without re-investigation.
560
560
561
-
### #113 — Additional page resource tests needed
562
-
563
-
A community draft PR ([#156](https://github.com/components-web-app/api-components-bundle/pull/156), now closed as too stale to merge) was opened in 2022 to add page resource tests. Remaining gap: `OpenApiFactory` decorator (`src/OpenApi/OpenApiFactory.php`) has no dedicated test coverage beyond the single smoke test in `features/main/openapi_compatibility.feature`.
564
-
565
-
---
566
-
567
561
### ComponentPosition `sortValue` collision on insert — API-side normalisation needed
568
562
569
563
**Context (from Nuxt module):** When an admin inserts a component "before" or "after" an existing position, the module computes a `sortValue` for the new `ComponentPosition` that may equal an existing position's `sortValue`. For "add before X (sortValue=N)", the new position gets `sortValue=N` (same as X). For "add after X (sortValue=N)", the new position gets `sortValue=N+1` which may collide with the position immediately following X.
### #170 — Component group `allowedComponents` does not validate `pageDataProperty` positions on write
588
582
589
-
**Read side fixed** (commit `c6964304`): `ComponentGroupNormalizer` filters `componentPositions` at normalisation time to hide positions whose component class is not in `allowedComponents`.
583
+
**Read side fixed** (commit `2305ad89`): `ComponentPositionNormalizer.normalizeForPageData()` now skips populating the component if the resolved type is not in `componentGroup.allowedComponents`. The position remains in `componentPositions` but with `component = null`. Direct-component write-side validation already works via `ComponentPositionValidator`.
590
584
591
-
**Write side still open:** When creating a `ComponentPosition` with `pageDataProperty` set (a dynamic slot resolved at render time), no validation is done against `allowedComponents`. A developer can add a `pageDataProperty` position referencing a disallowed component type and no error is raised. Validation is hard at write time because the component type of a `pageDataProperty` slot isn't known until the PageData is rendered — the property name is just a string like `'htmlContent'`.
585
+
**`pageDataProperty` write-side still open:** When creating a `ComponentPosition` with `pageDataProperty` set, no validation is done against `allowedComponents`. The property name is just a string — the component type isn't known until render time.
592
586
593
587
**Options:**
594
588
- Validate that the PageData class's property type for `pageDataProperty` is in `allowedComponents` (requires knowing the PageData class at write time)
@@ -607,14 +601,6 @@ Related Nuxt module issue: `components-web-app/cwa-nuxt-module#151`.
607
601
608
602
---
609
603
610
-
### #162 — Missing Behat tests for uploadable URL generators
611
-
612
-
Three URL generators exist: API gateway (default), Flysystem public URL, Flysystem temporary URL. These are configurable per field. No Behat tests cover switching between them.
613
-
614
-
**Where to add:**`features/main/` — needs a new `uploadable_url_generators.feature` or additions to an existing uploadable feature. Tests should cover each generator type returning the correct URL format.
615
-
616
-
---
617
-
618
604
### #159 — Manifest fetch triggers file existence checks → 500 when offline
619
605
620
606
Related to #163. When the route manifest is fetched and components with uploaded files are included, `MediaObjectFactory` checks file existence. In a local environment not connected to the internet (with files hosted in the cloud), this causes 500 errors.
0 commit comments