test: #3612501 Add functional tests for the ECA Workflow Modeler swap

Adds a webship-js (Playwright + Cucumber-js) isolation acceptance suite for the Varbase Content Base recipe's ECA editor swap.

Issue

https://www.drupal.org/project/varbase_content_base/issues/3612501 — Add functional tests for the ECA Workflow Modeler swap

Follows up on the merged swap: https://www.drupal.org/project/varbase_content_base/issues/3612486 (MR !10 (merged)) replaced BPMN.iO with the Workflow Modeler but shipped with no automated test proving it.

What this adds

  • tests/features/01-eca-workflow-modeler/ — 3 feature files, 6 scenarios:
    • the ECA add screen resolves straight to the Workflow Modeler;
    • the shipped redirect_403_to_login model opens and renders React Flow nodes in the Workflow Modeler with zero JavaScript errors;
    • modeler + modeler_api + eca + eca_ui are enabled and bpmn_io is not, no configuration object name contains "bpmn", and both shipped ECA models are tagged modeler_id: workflow_modeler.
  • tests/step-definitions/eca-workflow-modeler.steps.js — 5 custom steps (admin login via drush uli + 4 recipe-contract state checks), everything else reuses webship-js built-in steps.
  • package.json, cucumber.js, playwright.config.ts, tsconfig.json, .gitignore — the webship-js (~2.0.0) test tooling.
  • .gitlab-ci.yml — additive only. The existing build:composer-validate and validate:yaml-lint jobs are byte-identical to the live 1.0.x file; this MR only adds the test stage and one new job, "🧪 Recipe acceptance (Workflow Modeler)".

The suite is isolation-scoped

These scenarios are written for the recipe applied on its own (a plain Drupal site where the Workflow Modeler is the only ECA editor), not the full Varbase project template where both editors may coexist. See tests/features/01-eca-workflow-modeler/README.md for the distinction.

CI job is opt-in

The new test stage job only runs as a real gate when the RUN_RECIPE_BROWSER_TESTS CI/CD variable is set to 1 (project / MR / manual pipeline run); otherwise it's exposed as an optional manual button. The default fast pipeline (build:composer-validate + validate:yaml-lint) is untouched and stays the only automatic gate.

The suite was validated green (all 6 scenarios) against a live site with the recipe applied and the Workflow Modeler swap in place. The .gitlab-ci.yml job itself has not yet run in a GitLab runner — it needs a first manual pipeline run to confirm the CI build steps (Drupal site build via Composer, SQLite install, recipe apply, wait-on, cucumber-js) work end to end in that environment.

AI-Generated: Yes (Claude Code drafted the test suite, step definitions, and the opt-in CI job; a human reviews before merge).

Checkpoints

  • File an issue about this project
  • Addition/Change/Update/Fix to this project
  • Testing to ensure no regression
  • Automated unit/functional testing coverage
  • Developer Documentation support on feature change/addition
  • User Guide Documentation support on feature change/addition
  • UX/UI designer responsibilities
  • Accessibility and Readability
  • Reviewed by a human
  • Code review by maintainers
  • Full testing and approval
  • Credit contributors
  • Review with the product owner
  • Update Release Notes
  • Release
Edited by Rajab Natshah

Merge request reports

Loading
Loading