| name | testing-webui |
| description | Test the girl-agent WebUI end-to-end locally. Use when verifying profile setup, profile selection, config, assistant, addons, logs, memory, and runtime controls. |
girl-agent WebUI Testing
Devin Secrets Needed
CLAUDEHUB_API_KEY: API key for ClaudeHub LLM testing. Use it as a temporary/session secret unless the user explicitly saves it.
TELEGRAM_BOT_TOKEN: BotFather token for full runtime start/send testing.
TELEGRAM_USERBOT_PHONE, TELEGRAM_USERBOT_API_ID, TELEGRAM_USERBOT_API_HASH, and _2FA_TELEGRAM_USERBOT: only needed for real userbot login testing.
Do not write real API keys, bot tokens, phone codes, or 2FA values into reports, screenshots, commits, or skill files.
Local Setup
- From repo root, install dependencies:
npm install
- Build and typecheck before runtime testing:
npm run typecheck
npm run build
- Start WebUI with an isolated test data directory:
GIRL_AGENT_DATA=/home/ubuntu/girl-agent-test-data GIRL_AGENT_PORT=3000 npm run start -- --no-browser
- Open
http://127.0.0.1:3000 in Chrome.
Useful API Smoke Checks
Run these before recording UI tests to verify the server can reach seeded profiles:
curl -sS http://127.0.0.1:3000/api/profiles | python3 -m json.tool
curl -i http://127.0.0.1:3000/api/profiles/<slug>
If /api/profiles lists profiles but /api/profiles/<slug> returns route-level 404 {"error":"not found","path":...}, profile-dependent UI flows will be blocked. In that case, focus the test on proving the dynamic-route blocker and mark config, memory, logs, assistant apply, and runtime controls as blocked.
Primary UI Flow
- Verify an existing profile appears in the sidebar and becomes active.
- Open Logs and confirm a status card is shown for that profile.
- Open Configuration and run the LLM connection test using ClaudeHub/Sonnet when a valid
CLAUDEHUB_API_KEY is available.
- Use AI assistant to request a concrete config change, e.g.
ignoreTendency=12, then click the tool card's apply button and refresh to verify persistence.
- Use Setup Flow to create a new profile; verify it appears in the picker and becomes active after finish.
- Check Addons marketplace and Diagnostics as static/no-profile pages if profile activation is blocked.
Recording Guidance