From ignition-scada
Runs Jython gateway tests or Playwright e2e tests for Ignition SCADA projects. Defaults to gateway tests; use ui/e2e/smoke for browser tests.
npx claudepluginhub thethoughtagen/ignition-ide-plugins --plugin ignition-scadaThis skill uses the workspace's default tool permissions.
Run tests for the current Ignition project. Routes to gateway tests (Jython) or browser tests (Playwright) based on arguments.
Guides web app testing strategy: test pyramid (unit/integration/component/E2E), framework selection (Vitest/Playwright/Jest), coverage rules, mocking boundaries, and execution.
Sets up Playwright test projects with installation commands, basic/advanced playwright.config.ts configurations, multi-browser projects, and webServer for scalable test suites.
Share bugs, ideas, or general feedback.
Run tests for the current Ignition project. Routes to gateway tests (Jython) or browser tests (Playwright) based on arguments.
$ARGUMENTS
Default is always gateway (Jython) tests. Only route to Playwright when explicitly asked with ui or e2e.
| Argument | Action |
|---|---|
| (empty) | Run all gateway Jython tests |
<short-name> (e.g. changeover) | Translate to module path and run gateway test: try <name>.__tests__ first, search for matching module |
<dotted.path> (contains .) | Run as gateway module or package filter |
ui or e2e | Run all Playwright browser tests |
ui <area> | Run Playwright tests in e2e/tests/<area>/ |
ui smoke | Run Playwright smoke tests (e2e/tests/smoke/) |
smoke | Run gateway Jython tests — NOT Playwright. "Smoke test" without ui prefix means gateway tests. |
Ambiguity rule: If the user says "smoke test", "run tests", "test it", or any unqualified test request — always default to gateway Jython tests, not Playwright. Only use Playwright when the user explicitly says "ui", "e2e", "browser", or "playwright".
Detect the project using the detect-project script:
${CLAUDE_PLUGIN_ROOT}/scripts/detect-project.sh
Check that test infrastructure exists (existing_testing.jython_framework and existing_testing.webdev_endpoints). If not, tell the user: "Test infrastructure not found. Run /ignition-scada:init-testing first."
Trigger a gateway project scan (if API token is available):
TOKEN_FILE="${IGNITION_API_TOKEN_FILE:-}"
if [ -n "$TOKEN_FILE" ] && [ -f "$TOKEN_FILE" ]; then
TOKEN=$(cat "$TOKEN_FILE")
curl -k -s -X POST -H "X-Ignition-API-Token: $TOKEN" \
"<gateway>/data/project-scan-endpoint/scan?updateDesigners=true"
fi
Wait 3-5 seconds for scan propagation.
Run the tests:
# All tests
curl -k -s -X POST "<gateway>/system/webdev/<project>/testing/run"
# Specific module
curl -k -s -X POST "<gateway>/system/webdev/<project>/testing/run?module=<module>"
# Package filter
curl -k -s -X POST "<gateway>/system/webdev/<project>/testing/run?package=<package>"
Parse the JSON response and present results:
Check that e2e/node_modules exists. If not, tell the user to run cd e2e && npm install && npx playwright install chromium.
Check that e2e/.auth/user.json exists. If not, tell the user to run cd e2e && npx playwright test --project=setup.
Run the tests:
# All e2e tests
cd e2e && npx playwright test
# Specific area
cd e2e && npx playwright test tests/<area>/
# Smoke only
cd e2e && npx playwright test tests/smoke/
# Add --headed if the user says "headed" or "watch"
Parse the output and report results.
On failure, suggest: cd e2e && npx playwright show-report