Skip to main content

@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/MetadataTag contract ({ tag, attributes }). Drupal exposes the raw computed metatag array on content.data.metatag (nodes) and product.properties.metatag (commerce products) — the shape existing projects already consume — queried via the node-level GraphQL metatag { tag attributes } field. A normalized convenience copy is also provided on content.data.seo / product.seo and consumed by the App Router's generateMetadata (metatagsToNextMetadata); the Pages Router renders the array verbatim via next/head (MetatagsHead). Nothing is hardcoded or mandatory; unknown tags pass through untouched.

    Additive / non-breaking:

    • @acromedia/gesso-core: new MetadataShape type (+ MetadataTag alias), isSeoMetatags guard, normalizeMetatags (tolerant of both the object-attribute node-level/JSON:API shape and the {key,value} canonical-URL shape), seoToMetatags (structured Seo → array), and an advisory dev-only assertMetadata(seo, pageType). Product.seo's static type is unchanged (Seo); Drupal Commerce stores the MetadataShape[] array there at runtime — discriminate with isSeoMetatags.
    • @acromedia/gesso-drupal / -drupal-commerce: query the node-level metatag { tag attributes } field and pass the raw array through on content.data.metatag / product.properties.metatag (the existing consumer contract), plus a normalized convenience copy on content.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 a siteUrl config is set (now populated for new projects from the frontend URL), otherwise root-relative.
    • @acromedia/gesso-next: new metatagsToNextMetadata, createProductMetadata (App Router, with a shared React.cache product fetch so metadata + page hit the backend once) and MetatagsHead (Pages Router, with a backupTitle prop) exports; App Router titles use title.absolute so a layout title.template cannot re-wrap CMS titles. Pages Router DynamicHead keeps its legacy { title, description, tags } props (now deprecated) alongside the new seo prop, so existing callers keep working.

    Requires the companion drupal-cms change (metatag + schema_metatag modules, and the metatag GraphQL extension with the node-level metatag field 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