| name | webchat-html-tests |
| description | Run Bot Framework Web Chat HTML tests in Docker/Selenium Grid. Use when: running __tests__/html2, debugging failing HTML tests, updating snapshots, checking grid health, or cleaning leaked Selenium sessions. |
| argument-hint | Optional HTML test regex |
Web Chat HTML Tests
Run the HTML test harness, keep Selenium Grid healthy, and debug failures without keeping all of the operational detail in the skill body.
When to Use
- Running
__tests__/html2 for a branch or PR
- Debugging a failing HTML or snapshot test
- Updating snapshots after an intentional visual change
- Checking whether Selenium Grid is ready or leaking sessions
Procedure
1. Start Selenium Grid
Use the bundled script instead of pasting long Docker commands.
For a focused test run, keep the default scale of 2 Chrome nodes:
./.github/skills/webchat-html-tests/scripts/start-grid.sh
For a full run, match Jest's 4 workers:
CHROME_SCALE=4 ./.github/skills/webchat-html-tests/scripts/start-grid.sh
2. Wait for Grid Readiness
python3 ./.github/skills/webchat-html-tests/scripts/wait-for-grid.py
Stop if the script times out or if the node summary does not show ready nodes.
3. Run Tests
Run the full suite:
./.github/skills/webchat-html-tests/scripts/run-html-tests.sh
Run a focused HTML test with a regex anchored to the exact file:
./.github/skills/webchat-html-tests/scripts/run-html-tests.sh "__tests__/html2/activity/message-status\.html$"
Update snapshots for an expected visual change:
./.github/skills/webchat-html-tests/scripts/run-html-tests.sh --update "__tests__/html2/activity/message-status\.html$"
4. Clean Grid Sessions After Every Run
python3 ./.github/skills/webchat-html-tests/scripts/cleanup-grid-sessions.py
If leaked sessions remain, clean them before the next Jest run or the grid can stall.
5. Recover Common Infra Problems
If dist files return 404s after a local build, restart webchat2:
docker compose -f docker-compose-wsl2.yml restart webchat2
If a failure is not obvious, load the reference docs before changing code:
6. Tear Down
docker compose -f docker-compose-wsl2.yml down
Checklist