| name | helm-test |
| description | Use when the user wants to run, choose, or interpret Helm test and check commands across the PHP, JavaScript, TypeScript, or Playwright toolchains. |
Running Tests and Checks
Helm has parallel PHP and JS toolchains. PHP runs under WordPress via slic (Docker). JS runs directly via Vitest and Playwright.
PHP
PHP tests use Codeception through wp-browser, executed with slic. slic run is a thin wrapper around codecept run, so any codecept run syntax works.
Codeception run syntax
codecept run [options] [--] [<suite> [<test>]]
The <test> argument is a path relative to the suite directory (tests/Wpunit/), optionally followed by :methodName.
slic run Wpunit
slic run Wpunit ShipLink
slic run Wpunit ShipLink/HexCoordinateTest.php
slic run Wpunit ShipLink/HexCoordinateTest.php:testDistanceCalculation
slic run Wpunit --filter=testDistance
slic run Wpunit --group=slow
slic run Wpunit --debug
slic cc build
One-time slic setup from ~/Projects: slic here && slic use helm. After that, slic run works from the project directory.
PHP static analysis and linting
composer analyse
composer lint
composer lint:fix
These run PHP binaries directly with no Docker dependency, so they work anywhere Composer is installed.
JavaScript and TypeScript
bun run test
bun run test:watch
bun run check-types
bun run lint:js
bun run lint:fix
End-to-End
Playwright runs against a Vite dev server. It does not need a running WordPress instance.
bun run test:e2e
bun run test:e2e:ui
bun run test:e2e:headed
bun run test:e2e:debug
bun run test:e2e:report
Full Check Before Commit
Run PHP static checks, PHP unit tests, then JS checks and unit tests:
composer analyse && composer lint && slic run Wpunit && bun run check-types && bun run lint:js && bun run test
Run Playwright separately when UI behavior changed.