The core
- Unit:
node --test core/workspace-app/tests/unit/*.test.js(Node's own runner). The plugin system has its own file,plugin-system.test.js, which drivesplugins.shagainst a temporary tree withWORKSPACE_PLUGINS_NO_RESTART=1, so a test never restarts the dashboard that serves this machine. - Browser:
cd core/workspace-app && ddev test-dashboard browserruns the webship-js (Playwright + cucumber-js) features undertests/featuresagainst the live dashboard, one scenario at a time. Every installed plugin'sfeatures/*.featureis placed undertests/features/plugins/<name>/, so the suite covers what is actually on. - Scripts:
bash core/scripts/tests/cmd-smoke-test.shparses everycmd-*.sh.
A plugin
npm test in the plugin's folder builds it (TypeScript to dist/) and runs its compiled tests. Its CI workflow does the same on push.
The rule
A change lands through an issue and a pull request on the repository it belongs to, and is reviewed once the browser suite passes on a dashboard with the plugins installed from npm.