mcpbeat

Webchat Html Tests

microsoft/webchat-html-tests

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.

3k tokens
context cost
the whole folder, loaded on every use
7
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1783
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/microsoft/BotFramework-WebChat --skill webchat-html-tests

What comes with it

7 757 bytes besides the instruction
references/architecture.md
references/failure-modes.md
scripts/cleanup-grid-sessions.py
scripts/run-html-tests.sh
scripts/start-grid.sh
scripts/wait-for-grid.py

The instruction itself

10 sections, as written by the author

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:

  • Architecture and test layout
  • Failure modes and snapshot workflow

6. Tear Down

docker compose -f docker-compose-wsl2.yml down

Checklist

  • [ ] Grid is ready before running Jest
  • [ ] Focused tests use an anchored regex when targeting one HTML file
  • [ ] Sessions are cleaned after every run
  • [ ] Snapshot updates are rerun without --update
  • [ ] npm run precommit passes before opening the PR

How to use it

Copy the folder

Take microsoft/webchat-html-tests from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.