Problem/Motivation

The site template's functional tests (10 feature files) run on webship-js, with the step definitions and the settings kept in the project itself (cucumber.js, tests/step-definitions/).

The public step pack @webship-js/drupal-core-steps 2.1 (npm, GitHub) now ships, for any Drupal core site:

  • login by handle (verified, with a Honeypot-aware loginWait) and Given I add the testing users from the users registry
  • named administration pages, status messages, listings and operations
  • the media library, CKEditor and access control (I should be denied access to "...")
  • site structure assertions, Layout Builder steps, a selector preset and the complete default settings

Local copies drift from the pack and duplicate its maintenance. In this project:

  • No custom step is ambiguous with the pack. Two of the seven shell out to Drush on a local DDEV site (DRUSH, default ddev drush, run from DRUPAL_PROJECT_DIR): I am logged in as a user with the "..." role creates an account and signs in with a one-time link, and I go to the edit form of "..." resolves the path alias with php:eval.
  • cucumber.js has no users registry, so the pack's login by handle and I add the testing users have nothing to read.
  • CI installs the recipe and checks configuration and content counts (the recipe job), but no job runs the 10 feature files (37 scenarios). package.json has the test script only, with no packageManager.

Related: #3635932 (Node.js 24).

Steps to reproduce

  1. Read cucumber.js and tests/step-definitions/portal.steps.js on the 1.0.x branch.
  2. I am logged in as a user with the "..." role and I go to the edit form of "..." call ddev drush, and cucumber.js has no users block.
  3. Read the jobs of .gitlab-ci.yml: none runs the suite.

Proposed resolution

The pack's 2.1.0 is on npm.

  1. Add @webship-js/drupal-core-steps (^2.1.0) to the package.json devDependencies and its step glob (node_modules/@webship-js/drupal-core-steps/tests/step-definitions/**/*.js) to cucumber.js, between webship-js's own glob and the project's own. webship-js stays at ^2.0.6.
  2. Add a users registry in the pack's shape (username, email, password, roles, isAdmin) to cucumber.js. List the content editor and administrator accounts that tests/features/03-01-01-roles.feature signs in as.
  3. No custom step collides with the pack, so none is removed for that reason. Replace I am logged in as a user with the "..." role by the pack's login by handle, and I go to the edit form of "..." by a step that needs no Drush; keep the other five.
  4. Add a test:dry script (cucumber-js --dry-run) and a dry run in CI before the browser job, so an undefined or ambiguous step fails early.
  5. Add a webship-js-test CI job that runs the suite against the site the recipe job installs, with Node 24 and Playwright, modelled on the job of the Drupal Website API Starter site template. Check the Composer and npm constraints against the current releases and name the ones that change in the merge request.
  6. One merge request on the 1.0.x branch from an issue fork, pipeline green, then a release.

AI-Generated: Yes (issue text)

Remaining tasks

  • ✅ 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

User interface changes

  • N/A

API changes

  • N/A

Data model changes

  • N/A

Release notes snippet

  • The automated tests run on the @webship-js/drupal-core-steps step pack; CI runs a dry run first.

Comments

rajab natshah created an issue. See original summary.

  • rajab natshah committed 6134c77b on 1.0.x
    task: #3636726 Use @webship-js/drupal-core-steps 2.1 for the webship-js...
rajab natshah’s picture

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.