mcpbeat Sign in

Webchat HTML Tests Agent Skill

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

Other skills for the same job

different authors, same section of the catalogue
Webapp Testing
by anthropics
vendor ×12

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

6k tokens scripts
Azure Microsoft Playwright Testing Ts
by lingxling
×1

Run Playwright tests at scale with cloud-hosted browsers and integrated Azure portal reporting.

2k tokens
Chrome Devtools
by christophacham
×1

Browser debugging, performance profiling, and automation via Chrome DevTools MCP. Use when user says "debug this page", "take a screenshot", "check network requests", "profile performance", "inspect console errors", or "analyze page load". Do NOT use for full E2E test suites (use playwright-skill) or non-browser debugging.

1k tokens
QA
by browser-use

QA-test a website or web app and return a 1-5 quality score (5 = flawless, 1 = broken) with evidence. Use when the user wants to test, QA, evaluate, score, or "check how good" a site, page, flow, or app — including a local dev server (e.g. "qa test localhost:5173", "does the checkout work?", "rate this landing page"). Drives a real Browser Use cloud browser, tunneling localhost automatically.

9k tokens
Browser Testing With Devtools
by addyosmani

Tests in real browsers via Chrome DevTools MCP. Use when building or debugging anything that runs in a browser. Use when you need to inspect the DOM, capture console errors, analyze network requests, profile performance, or verify visual output with real runtime data. Requires the chrome-devtools MCP server to be configured.

4k tokens
Browser Harness
by browser-use

Always use browser-harness for any web interaction: automation, scraping, testing, or site/app work.

493k tokens scripts
Help Center UI Test
by Automattic

Run a browser-based UI review of the WordPress.com Help Center across multiple surfaces, looking for visual and behavioral issues. Use when asked to test the Help Center UI.

2k tokens
Playwright Expert
by Jeffallan

Use when writing E2E tests with Playwright, setting up test infrastructure, or debugging flaky browser tests. Invoke to write test scripts, create page objects, configure test fixtures, set up reporters, add CI integration, implement API mocking, or perform visual regression testing. Trigger terms: Playwright, E2E test, end-to-end, browser testing, automation, UI testing, visual testing, Page Object Model, test flakiness.

5k tokens

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.