Add automated functional acceptance testing for Web Admin with webship-js, fix recipe to install Gin admin theme and Masquerade
>>> [!note] Migrated issue
<!-- Drupal.org comment -->
<!-- Migrated from issue #3591755. -->
Reported by: [rajab natshah](https://www.drupal.org/user/1414312)
>>>
<h3 id="summary-problem-motivation">Problem/Motivation</h3>
<p>The Web Admin module advertises Gin as the administration theme together with Gin Toolbar, Gin Login and Masquerade, and<br>
composer-requires all four packages. The default recipe does not install any of them and the active administration theme stays on<br>
Claro after <code>drush en webadmin</code>.</p>
<p>The module also ships no acceptance tests and no CI job that exercises the install path on each push.</p>
<h3 id="summary-proposed-resolution">Proposed resolution</h3>
<ul>
<li>The default recipe installs <code>gin</code>, <code>gin_toolbar</code>, <code>gin_login</code> and <code>masquerade</code><br>
in dependency order.</li>
<li>The default recipe sets <code>system.theme.admin</code> to <code>gin</code> through a <code>simpleConfigUpdate</code> config<br>
action.</li>
<li><code>webadmin.info.yml</code> declares <code>masquerade:masquerade</code> as a hard module dependency.</li>
</ul>
<h3>Acceptance test suite</h3>
<p>A webship-js (Playwright + Cucumber) suite is added under <code>tests/</code> with 35 scenarios across 12 feature files:</p>
<ul>
<li>Login for every configured user (Webmaster, Content editor, Authenticated user).</li>
<li>Web Admin bundled modules are enabled.</li>
<li>Gin is the active administration theme.</li>
<li>Masquerade is installed and surfaces the switch link on a user profile.</li>
<li>Views Bulk Operations on the People admin view.</li>
<li>Views Bulk Edit is enabled and exposes its permission.</li>
<li>Dashboards bundled with Web Admin (Default, Editorial, Management, Webmaster).</li>
<li>Content Moderation and Workflows admin pages.</li>
<li>Administration navigation, toolbar and shortcuts.</li>
<li>Pre-check of the main administration pages.</li>
<li>Gin Login styled sign-in page and configuration form.</li>
<li>Access control for anonymous and authenticated users.</li>
</ul>
<p>The suite ships with reusable step definitions, Drupal core Claro and CMS Gin selector files, screenshot, video and JSON / HTML<br>
report writers.</p>
<h3>Continuous integration</h3>
<p>A <code>.gitlab-ci.yml</code> pipeline runs on every push:</p>
<ul>
<li><code>cspell</code>, <code>eslint</code> and <code>stylelint</code> validation jobs on Node 20.</li>
<li>A <code>webship-js-test</code> job that builds Drupal with the drupalci <code>composer</code> job, installs the standard<br>
profile, enables <code>webadmin</code>, installs Node 20 and Playwright Chromium, then runs the suite with
<pre>--tags "not<br> @wip"</pre><p> and publishes the JUnit report, HTML report, failed-step screenshots and videos as artifacts.</p></li>
</ul>
<h3 id="summary-remaining-tasks">Remaining tasks</h3>
<ul>
<li>✅ File an issue</li>
<li>✅ Addition/Change/Update/Fix</li>
<li>✅ Merge request, Patch, or Commit</li>
<li>✅ Testing to ensure no regression</li>
<li>✅ Automated unit testing coverage</li>
<li>✅ Automated functional testing coverage</li>
<li>➖ UX/UI designer responsibilities</li>
<li>➖ Readability</li>
<li>➖ Accessibility</li>
<li>➖ Performance</li>
<li>➖ Security</li>
<li>➖ Documentation</li>
<li>✅ Code review by maintainers</li>
<li>✅ Full testing and approval</li>
<li>✅ Credit contributors</li>
<li>✅ Review with the product owner</li>
<li>✅ Release notes snippet</li>
<li>✅ Release <a href="https://www.drupal.org/project/webadmin/releases/11.0.1">webadmin-11.0.1</a></li>
</ul>
<h3 id="summary-ui-changes">User interface changes</h3>
<ul>
<li>N/A</li>
</ul>
<h3 id="summary-api-changes">API changes</h3>
<ul>
<li>N/A</li>
</ul>
<h3 id="summary-data-model-changes">Data model changes</h3>
<ul>
<li>N/A</li>
</ul>
<h3 id="summary-release-notes">Release notes snippet</h3>
<ul>
<li>ci: <a href="https://www.drupal.org/i/3591755">#3591755 </a>Add automated functional acceptance testing for Web Admin with webship-js, fix recipe to install Gin admin theme and Masquerade</li>
</ul>
issue