Interface Utilisateur de Contrôle – Tests E2E

Concevoir, tester, corriger ou étendre l'interface graphique de Contrôle OpenClaw ; galeries de test de résistance UI avec entrées de feedback, vérifications de bout en bout Vitest + Playwright, flux Gateway simulés, captures d'écran/vidéos, preuve navigateur vérifiable par l'agent.

Qu'est-ce que Interface Utilisateur de Contrôle – Tests E2E ?

Cette compétence permet de concevoir, tester et valider l'interface utilisateur de Contrôle (Control UI) d'OpenClaw de manière robuste et automatisée. Elle est particulièrement utile pour les développeurs travaillant sur des modifications importantes de l'interface, car elle fournit un cadre structuré pour créer des galeries de test de résistance, exécuter des tests de bout en bout avec Vitest et Playwright, et générer des preuves visuelles et textuelles des changements. La compétence prend en charge Windows, macOS et Linux, et s'intègre avec les environnements de développement comme Codex et les workflows CI/CD. Le fonctionnement repose sur la génération de galeries HTML statiques contenant des exemples représentatifs de tous les états pertinents des composants (normal, chargement, vide, erreur, etc.), chacune associée à une entrée de feedback persistante. Les tests E2E utilisent des données déterministes via un serveur de simulation Gateway et Playwright pour piloter Chromium. Les preuves visuelles (captures d'écran, vidéos) sont produites avec des helpers spécialisés qui garantissent la reproductibilité et évitent toute dépendance à l'état de rendu antérieur. En cas d'échec, les artefacts sont conservés pour analyse, et la compétence exige toujours de valider le comportement réel avant de déclarer une correction réussie.

Compatible avec✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/control-ui-e2e

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Que fait Interface Utilisateur de Contrôle – Tests E2E ?

Conception de feedback UI + flux navigateur réels avec données Gateway déterministes.

Test de Résistance UI

  • Changements UI substantiels : construire d'abord une galerie HTML locale de test de résistance ; laisser l'utilisateur comparer des états significatifs et donner son feedback sur des exemples concrets.
  • Utiliser pour les mises en page, les interactions, les composants avec plusieurs états. Les petites modifications de copie/icône peuvent être ignorées lorsque la galerie n'apporte aucune comparaison utile.
  1. Dériver les exemples des composants affectés + des contrats de données. Couvrir les états pertinents : normal, chargement, vide, erreur, indisponible, permission, sélectionné, développé ; texte long/contenu dense là où ils mettent à l'épreuve la mise en page. Afficher les états mutuellement exclusifs séparément ; étiqueter les états proposés non supportés par l'implémentation actuelle.
  2. Un aperçu HTML ouvrable dans le navigateur : identifiants d'exemples stables, courtes étiquettes d'état, suffisamment de contexte pour comprendre chaque exemple. Préférer les composants réels + fixtures mock déterministes. Étiqueter les rendus statiques/approximatifs ; lier l'UI en cours pour les interactions qu'ils ne peuvent pas reproduire. Galeries générées : stockage d'artefacts appartenant à la tâche ; pas de commit par défaut.
  3. Chaque exemple : entrée de feedback étiquetée. Persister localement après les rechargements avec une clé de stockage spécifique à la galerie + identifiants d'exemples stables. Action Copier le feedback exportant les identifiants d'exemples, les étiquettes d'état, les commentaires au format Markdown/texte brut pour que l'utilisateur les ramène dans la conversation.
  4. Ouvrir la galerie dans le navigateur d'aperçu disponible ; partager l'URL/chemin de fichier. Conserver la même galerie, les mêmes identifiants d'exemples, les commentaires existants à travers les itérations. Appliquer le feedback utilisateur à la fois à la galerie + à l'implémentation ; maintenir la comparabilité.
  5. Avant de demander un feedback : inspecter les exemples rendus aux tailles de fenêtre pertinentes ; vérifier que le feedback survit au rechargement et exporte les bonnes étiquettes d'exemples. Signaler les états non supportés/limitations de l'aperçu.

La galerie soutient la révision de design ; elle ne remplace jamais les tests de comportement ciblés ni les preuves avant/après inspectées de l'UI en fonctionnement. Conserver la preuve finale dans des répertoires de capture frais ci-dessous, séparés de la galerie en évolution.

Structure des Tests

  • Flux GUI complets : ui/src/**/*.e2e.test.ts.
  • ui/src/test-helpers/control-ui-e2e.ts : démarrer Vite Control UI + installer une Gateway WebSocket simulée.
  • Scénarios déterministes. Pas de clés de fournisseur réelles, ni d'identifiants de canal réels, ni de Gateway réelle sauf si l'utilisateur demande explicitement une preuve en direct.
  • Affiner la logique de rendu : préférer les tests .browser.test.ts / tests unitaires existants. La voie E2E : routage, démarrage de l'application, handshake Gateway, requêtes, comportement UI visible ensemble.

Commandes

  • Cibler un test E2E dans l'arbre de travail Codex :
node scripts/run-vitest.mjs run --config test/vitest/vitest.ui-e2e.config.ts --configLoader runner ui/src/e2e/chat-flow.messaging.e2e.test.ts
  • Voie locale entière dans un checkout normal :
pnpm test:ui:e2e
  • Utiliser une installation de dépendances prête ou un checkout normal préparé ; ne jamais réconcilier une installation partagée pendant que d'autres tâches l'utilisent.
  • Suivre $openclaw-testing : une preuve de développement de confiance peut être exécutée localement ; une preuve à distance nécessite une raison de navigateur/plateforme, d'environnement propre ou d'isolation source.

Preuve Visuelle par Défaut

  • Changements d'apparence : preuve visuelle inspectée avant/après.
  • Autre comportement : preuve de limite la plus claire appropriée ; vidéo + jeu de captures d'écran non obligatoires lorsque les assertions démontrent déjà le changement.
  • Assertions Vitest E2E déterministes ; ne jamais commiter de captures d'écran/vidéos générées.
  • La suite partagée désactive la rastérisation partielle Chromium + la rastérisation GPU pour éviter les pixels de bord dépendant de l'historique de peinture observés. Des comparaisons exactes répétées sont toujours nécessaires avant de revendiquer la reproductibilité.
  • États transitoires tels que Sauvegardé : installer page.clock avant la fixture ; mettre en pause avec pauseVirtualClock ; avancer seulement le travail de fixture nécessaire pour entrer dans l'état. setFixedTime seul ne met pas en pause les minuteurs. La capture de préparation utilise la disposition native sans avancer l'horloge de la fixture.
  • Images fixes : takeControlUiScreenshotFrame depuis ui/src/test-helpers/control-ui-e2e-screenshot.ts, contenu sémantique explicite + `animations:

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Skills associés