fix: #3628401 Ship the component versions the content uses and check them in the functional suite
Issue: https://www.drupal.org/project/rightup/issues/3628401
Content templates reference component versions the recipe does not ship, so the Home page and the Canvas editor fail with an OutOfRangeException on a site installed from recipe 1.0.2 with theme 1.0.3.
- Re-exports
canvas.component.sdc.vartheme_bs5_rightup.button,.groupand.textso they ship the newest version of each, which the content already references (buttonf7a537484db43170, groupa84c76c20ee7a3da, texta67ef6b9d036abac). The exports come from the playground site; the diff only adds versions and theoptionsmodule dependency, and movesactive_version. - Adds
tests/features/15-quality/15-05-component-versions.featureto the functional suite. One scenario checks, from the recipe's own files, that every component version the content uses is one the recipe ships (new step intests/step-definitions/component-versions.steps.js). Six more visit the home, podcasts, podcast show, culture, search and contact pages as a visitor and fail if an OutOfRangeException or the "unexpected error" page is shown.
Checked: the static scenario fails with the 11 references when the three component configs are as on 1.0.x and passes with this change. The page scenarios pass on a healthy Drupal CMS site and fail on a copy of the broken site (home and culture pages). Cspell, ESLint and the Cucumber dry-run pass locally with gitlab-ci-local.
Not checked: a fresh install with this change (the merge request pipeline builds one), and the Canvas editor view. A scenario that opened the editor did not detect the error, so it is left out.
AI-Generated: Yes
Checkpoints:
- File an issue
- Addition/Change/Update/Fix
- Testing to ensure no regression
- Automated unit testing coverage
- Automated functional testing coverage
- UX/UI designer responsibilities
- Readability
- Accessibility
- Performance
- Security
- Developer Documentation
- User Guide Documentation
- Reviewed by human
- Code review by maintainers
- Full testing and approval
- Credit contributors
- Review with the product owner
- Release notes snippet
- Release