Problem/Motivation

The Web Config module had no automated functional
acceptance test coverage, so there was no way to confirm that a fresh
install actually enables the bundled configuration-management modules and
that their admin screens load.

While verifying this, two defects surfaced:

  • The webconfig/default recipe only installed a subset of
    the bundled modules. config_split, config_ignore,
    config_inspector and config_rewrite were required
    in composer.json (and advertised in the README) but were never
    enabled on install.
  • webconfig.info.yml declared module dependencies and
    used the recipe, and its description line contained a stray
    trailing quote.

Proposed resolution

  • Expand recipes/default/recipe.yml to install every bundled
    module — config, config_update,
    config_update_ui, config_filter,
    config_split, config_ignore,
    config_inspector, config_rewrite,
    config_import_single — and import their configuration.
  • Make the recipe the single source of truth for installation: remove the
    module dependencies from webconfig.info.yml and fix
    the description typo.
  • Add a webship-js (Playwright + Cucumber-js) BDD test
    suite under tests/ with shared config (cucumber.js,
    playwright.config.ts, role-based test users, CMS selectors).
  • Add a GitLab CI webship-js-test job to
    .gitlab-ci.yml that installs Drupal + the module, provisions
    Node 20 and Playwright Chromium, and runs the suite.

Functional coverage (22 scenarios, 89 steps — all passing)

  • Login fixtures for Webmaster, Content editor and Authenticated user.
  • Recipe enables every bundled module; each config admin route is reachable.
  • Core configuration Synchronize / Import / Export pages.
  • Configuration Update Manager Updates report.
  • Configuration Inspector overview (/admin/reports/config-inspector).
  • Configuration Split list and add form.
  • Config Ignore settings form.
  • Single configuration import and export forms.
  • End-to-end single export — selecting a config item renders its YAML.
  • Access control: anonymous and authenticated users are denied.

Remaining tasks

  • ✅ File an issue
  • ✅ Addition/Change/Update/Fix
  • ✅ Merge request, Patch, or Commit
  • ✅ Testing to ensure no regression
  • ✅ Automated unit testing coverage
  • ✅ Automated functional testing coverage
  • ➖ UX/UI designer responsibilities
  • ➖ Readability
  • ➖ Accessibility
  • ➖ Performance
  • ➖ Security
  • ➖ Documentation
  • ✅ Code review by maintainers
  • ✅ Full testing and approval
  • ✅ Credit contributors
  • ✅ Review with the product owner
  • ✅ Release notes snippet
  • ✅ Release webconfig-11.0.1

User interface changes

  • N/A

API changes

  • N/A

Data model changes

  • N/A

Release notes snippet

  • ci: #3591744 Add automated functional acceptance testing for Web Config with webship-js (Playwright + Cucumber-js) and have the default recipe install all bundled configuration modules

Comments

rajab natshah created an issue. See original summary.

  • rajab natshah committed 60e8be2b on 11.0.x
    ci: #3591744 Add automated functional acceptance testing for Web Config...
rajab natshah’s picture

Assigned: rajab natshah » webship
Issue summary: View changes
Status: Active » Needs review
Issue tags: +webconfig-11.0.1
rajab natshah’s picture

Assigned: webship » Unassigned
Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

rajab natshah’s picture

Issue summary: View changes

✅ Released webconfig-11.0.1