Add automated browser tests (webship-js BDD + Playwright) and GitLab CI jobs
>>> [!note] Migrated issue <!-- Drupal.org comment --> <!-- Migrated from issue #3590406. --> Reported by: [rajab natshah](https://www.drupal.org/user/1414312) >>> <h3 id="summary-problem-motivation">Problem/Motivation</h3> <p>The webnewsletter module has no automated functional test coverage and no browser tests in its GitLab CI pipeline. Regressions in the subscribe form, subscriber admin, and access control can only be caught manually.</p> <h3 id="summary-proposed-resolution">Proposed resolution</h3> <p>The webnewsletter module has no automated functional test coverage and no browser tests in its GitLab CI pipeline. Regressions<br> in the subscribe form, subscriber admin, and access control can only be caught manually.</p> <h3>Proposed resolution</h3> <p>Add two browser-test suites and wire them into CI:</p> <ul> <li><strong>webship-js BDD suite</strong> (<code>tests/features/</code>) &mdash; 20 scenarios covering admin login, the public<br> subscribe form, subscriber management (add/edit/delete/deactivate), email confirmation, and access control.</li> <li><strong>Native Playwright suite</strong> (<code>tests/src/Playwright/</code>) &mdash; the same coverage as TypeScript<br> <code>@playwright/test</code> specs.</li> <li><strong>GitLab CI</strong> (<code>.gitlab-ci.yml</code>) &mdash; three jobs (<code>webship-js-test</code>,<br> <code>webship-js-test-smoke</code>, <code>playwright-test</code>) that build Drupal from the <code>composer</code> artifact,<br> install the module, and run both suites against a live site.</li> </ul> <h3 id="summary-remaining-tasks">Remaining tasks</h3> <ul> <li>&#9989; File an issue</li> <li>&#9989; Addition/Change/Update/Fix</li> <li>&#9989; Merge request, Patch, or Commit</li> <li>&#9989; Testing to ensure no regression</li> <li>&#10134; Automated unit testing coverage</li> <li>&#10134; Automated functional testing coverage</li> <li>&#10134; UX/UI designer responsibilities</li> <li>&#10134; Readability</li> <li>&#10134; Accessibility</li> <li>&#10134; Performance</li> <li>&#10134; Security</li> <li>&#10134; Documentation</li> <li>&#9989; Code review by maintainers</li> <li>&#9989; Full testing and approval</li> <li>&#9989; Credit contributors</li> <li>&#9989; Review with the product owner</li> <li>&#9989; Release notes snippet</li> <li>&#9989; Release <a href="https://www.drupal.org/project/webnewsletter/releases/11.0.0">webnewsletter-11.0.0</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/3590406">#3590406</a> Add automated browser tests (<strong>webship-js BDD + Playwright</strong>) and GitLab CI jobs</li> </ul>
issue