task: #3636739 Use @webship-js/drupal-core-steps 2.1 for the webship-js suite and refresh the dependencies

Summary

The UIkit Admin functional tests (webship-js, Cucumber) now run on the public step pack @webship-js/drupal-core-steps (^2.1.0), so login by handle, the testing users and the other shared Drupal steps are maintained in the pack and available to the suite.

  • package.json: adds @webship-js/drupal-core-steps ^2.1.0 as a devDependency, lists webship-js ^2.0.6 under devDependencies next to it (the version the pack declares as its peer dependency; it stays in dependencies too) and adds a test:dry script (cucumber-js --config cucumber.js --dry-run).
  • cucumber.js: loads the step glob of the pack between webship-js's own steps and the project's own, and adds a users registry in the pack's shape (Webmaster, Content editor and Authenticated user, each with username, email and password, plus roles, and isAdmin for the site-install account) for the login by handle and I add the testing users. The project had none. The entries are written one property per line, the way the Drupal ESLint rules ask: the eslint job of the first pipeline flagged the one-line form, and the second commit is the patch that job produced.
  • .gitlab-ci.yml: DRUPAL_CORE follows the 11.4 branch (11.4.x-dev) instead of the fixed 11.4.8, in the global variables and in the composer job; a dry run (cucumber-js --dry-run) runs in each of the three parallel webship-js-test jobs before the browser run, so an undefined or ambiguous step fails early.

No custom step is removed: the project has no login by handle or testing-users step of its own (its I am logged in as the Drupal administrator and I am logged in as the user "..." steps stay), and the dry run reports no ambiguous step. The project already used node:24, .yarnrc.yml already sets npmMinimalAgeGate: 0 and the project tracks no lock file (.gitignore covers yarn.lock).

Issue: https://www.drupal.org/node/3636739

Test notes

Locally with Node 24 and Yarn 4.18.1, installing without a lock file as CI does (with --mode=skip-build, which skips the browser download): webship-js 2.0.6, @webship-js/drupal-core-steps 2.1.0 and @cucumber/cucumber 13.3.0 resolve, and the install leaves no untracked files. The dry run (./node_modules/.bin/cucumber-js --config cucumber.js --dry-run, the command the CI jobs now run first) covers all 219 scenarios and 5743 steps, with no undefined and no ambiguous steps; each parallel CI job covers its third of them.

Pipeline status

webship-js-test 3/3 is red: one of its 74 scenarios fails, tests/features/02-09-01-display-builder.feature:17 ("The sign-in page layout draws the log in screen once it is chosen"), at the step "the page should have exactly one h1" with Expected 1 <h1>, found 0.. The job was retried once with the same result. The other two webship-js-test jobs (one of them after an automatic retry of a runner failure) and the lint jobs pass.

This merge request does not touch that page or its markup, and the cause is a dependency that floats. The last pipeline of 4.0.x (2026-11-07, all three browser jobs green, 219 scenarios) resolved drupal/display_builder 1.0.0-beta9; this one resolved 1.0.0-beta10 (composer.json asks for ^1.0@beta). In beta10 the change "Unexpected markup in page title source" (drupal.org issue 3621589) no longer wraps a string title in the themeable page_title element, so the title slot of the sign_in component receives plain text and the page has no h1: the failure screenshot shows <div class="uikit-admin-sign-in__title">Log in</div>, while the component documents that the page title block prints that slot as the h1 of the page.

That scenario needs its own issue and merge request, so this one is not merged while the job is red.

AI-Generated: Yes (configuration and step cleanup; reviewed by Rajab Natshah.)

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
Loading