@acromedia/integration-tests
1.1.3
Patch Changes
-
8afcce4: dd dynamic CMS/commerce metadata (metatags) on both routers (GESSO-1224)
Introduces an open, generic metadata pipeline using the established
MetadataShape/MetadataTagcontract ({ tag, attributes }). Drupal exposes the raw computedmetatagarray oncontent.data.metatag(nodes) andproduct.properties.metatag(commerce products) — the shape existing projects already consume — queried via the node-level GraphQLmetatag { tag attributes }field. A normalized convenience copy is also provided oncontent.data.seo/product.seoand consumed by the App Router'sgenerateMetadata(metatagsToNextMetadata); the Pages Router renders the array verbatim vianext/head(MetatagsHead). Nothing is hardcoded or mandatory; unknown tags pass through untouched.Additive / non-breaking:
@acromedia/gesso-core: newMetadataShapetype (+MetadataTagalias),isSeoMetatagsguard,normalizeMetatags(tolerant of both the object-attribute node-level/JSON:API shape and the{key,value}canonical-URL shape),seoToMetatags(structuredSeo→ array), and an advisory dev-onlyassertMetadata(seo, pageType).Product.seo's static type is unchanged (Seo); Drupal Commerce stores theMetadataShape[]array there at runtime — discriminate withisSeoMetatags.@acromedia/gesso-drupal/-drupal-commerce: query the node-levelmetatag { tag attributes }field and pass the raw array through oncontent.data.metatag/product.properties.metatag(the existing consumer contract), plus a normalized convenience copy oncontent.data.seo/product.seo(previously empty).@acromedia/gesso-storyblok:buildMetatags()(now exported) builds the array from Storyblok's structured SEO fields; canonical is absolute when asiteUrlconfig is set (now populated for new projects from the frontend URL), otherwise root-relative.@acromedia/gesso-next: newmetatagsToNextMetadata,createProductMetadata(App Router, with a sharedReact.cacheproduct fetch so metadata + page hit the backend once) andMetatagsHead(Pages Router, with abackupTitleprop) exports; App Router titles usetitle.absoluteso a layouttitle.templatecannot re-wrap CMS titles. Pages RouterDynamicHeadkeeps its legacy{ title, description, tags }props (now deprecated) alongside the newseoprop, so existing callers keep working.
Requires the companion drupal-cms change (metatag + schema_metatag modules, and the
metatagGraphQL extension with the node-levelmetatagfield enabled on the node / commerce_product entity types of the GraphQL server).
1.1.2
Patch Changes
- 63d48b9: Add id to sort dropdown for test stability
1.1.1
Patch Changes
- 8356088: Improve integration tests reliability
1.1.0
Minor Changes
- aaad2a6: Upgrade to typescript v5 and nodenext
1.0.2
Patch Changes
- dab6504: Remove incorrect license info
1.0.1
Patch Changes
- 36d7d5a: Updated AI Followup to use the AI Coin component