Was macht OpenClaw Docker E2E Authoring?
Verwenden Sie dies beim Hinzufügen oder Ändern von Docker E2E-Lanes, Release-Pfad-Docker-Tests oder Live-Provider-Docker-Proofs.
Lane-Wahl
- Deterministisches Docker: Faken Sie die Abhängigkeit/den Server und prüfen Sie den exakten Laufzeitvertrag an der Grenze.
- Live-Docker: Verwenden Sie echte Anbieteranmeldedaten/Modell nur, wenn das für den Benutzer sichtbare Verhalten den echten Dienst benötigt.
- Beide bevorzugen, wenn sie unterschiedliche Risiken abdecken: deterministisch für Byte-/Payload-Routing, live für tatsächliches Anbieterverhalten.
Authoring-Regeln
- Test-only Helper leben in
test/helpersoderscripts/e2e/lib/<lane>/, nicht insrc/**, es sei denn, die Produktion importiert sie. - Die paketinstallierte App läuft von
/app; mounten Sie nur explizite Harness-/Helper-Pfade als read-only. - Fake-Server sollten Grenzanfragen als JSONL protokollieren und Clients sollten die tatsächliche Abhängigkeits-Payload prüfen, nicht nur den Erfolg des Prozesses.
- Fügen Sie das Paketskript und die Lane in
scripts/lib/docker-e2e-scenarios.mjsin derselben Änderung hinzu. - Wenn eine Lane ein Plugin von npm installiert, geben Sie die Spezifikation standardmäßig über env an, sodass sowohl veröffentlichte als auch lokale Überschreibungspfade testbar sind.
Medien und Vision
- Die erwartete Antwort darf nur in Pixeln oder der getesteten Anbieterausgabe existieren.
- Verwenden Sie neutrale Dateinamen, neutrale Prompts und keine Metadatenlecks.
- Zufällige Bitmap-/OCR-Tokens verwenden das OCR-sichere Alphabet
24567ACEFaus dem Repo, es sei denn, der Test besitzt einen stärkeren Glyphensatz. - Machen Sie die erwartete Antwort pro Durchlauf eindeutig, wenn echtes Bildverständnis nachgewiesen werden soll.
chat.send E2E
- Verlangen Sie, dass
chat.sendstatus: "started"und einen StringrunIdzurückgibt. - Warten Sie auf Abschluss mit
agent.wait. - Prüfen Sie den finalen, für den Benutzer sichtbaren Text über
chat.history, wenn die Ereignisreihenfolge nicht das zu testende Verhalten ist. - Behalten Sie Metadaten von ursprünglichem Kanal/Konto nur bei, wenn der Fehlerpfad den eingehenden/Kanal-Kontext in der Warteschlange benötigt.
Verifikation
Führen Sie den kleinsten Proof aus, der die betroffene Lane abdeckt:
pnpm exec oxfmt --write <changed files>
node --check <new .mjs files>
bash -n <new .sh files>
node scripts/run-vitest.mjs test/scripts/docker-e2e-plan.test.ts
OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:<lane>
Führen Sie für Live-Provider-Lanes das passende Live-Docker-Skript aus, nachdem das deterministische Docker grün ist. Beenden Sie mit $autoreview vor dem Commit/PR.