test: #3618330 Add functional testing coverage for the Varbase Internationalization Base recipe behaviour

Adds functional testing coverage for the behaviour the Varbase Internationalization Base recipe actually configures. The recipe was covered by a single scenario (the Content language and translation screen loads); three scenarios now assert what it configures.

Issue: #3618330

Scenarios added

tests/features/13-varbase-recipes/13-15-varbase-i18n-base.feature (1 → 4 scenarios). The pre-existing scenario is untouched.

  • The Translation Management Tool is offered for the site to enable, not enabled by the recipe — read off the Extend page: Translation Management Core is listed with its install checkbox clear, while Content Translation, Configuration Translation and Interface Translation are checked. Which translation workflow a site runs is the site's decision, not the distribution's.
  • Content translation is enabled for the Drupal Canvas Page and its component input values — the Canvas "Page" entity is translatable and so is the "Component input values" field, which is what lets a translator rewrite a Canvas page's copy and not only its title. Entity types the recipe leaves alone stay clear, so the scope is asserted as deliberate rather than blanket.
  • The Varbase editorial roles hold the content translation permissions — the recipe grants them unevenly on purpose: Content Editor, Content Admin, SEO Admin and Site Admin may create and edit a translation, only Content Admin and Site Admin may delete one, and a plain authenticated user may do none of it.

tests/features/13-varbase-recipes/README.md — the 13-15 row goes 1 → 4 scenarios, folder total 18 → 21 across 17 feature files.

Testing

  • CI lane, --tags "not @wip": 5 scenarios / 65 steps passed on a 5-language site.
  • Gated lane, --tags "@multilingual": 2 scenarios / 29 steps passed on a 2-language site.
  • Whole-suite dry run: 0 undefined, 0 ambiguous steps.
  • Adversarial run: the Translation Management Tool scenario correctly failed on a site where TMGMT was installed, so it is asserting the recipe's decision rather than passing vacuously.
  • Gherkin parse of the changed file in this clone: 4 scenarios / 50 steps, no syntax errors.

gitlab-ci-local notes: the validate-stage linters run green via .gitlab-ci-local.yml. 🔤 Cspell cannot give a meaningful local result in a clone without a Composer build — .cspell.json extends web/core/.cspell.json, which is absent, so every file including untouched ones reports unknown words; the baseline is identical before and after this change. The 🧪 varbase-e2e matrix needs the Composer-built site artifact and a MySQL service and does not run under gitlab-ci-local; it was run against a live site instead, with the numbers above.

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
Edited by Rajab Natshah

Merge request reports

Loading