OpenClaw Docker E2E Authoring
Use isto ao adicionar ou alterar lanes Docker E2E, testes Docker de caminho de release ou provas Docker de provedor real.
Escolha da Lane
- Docker Determinístico: simule o servidor/dependência e afirme o contrato exato de execução cruzando a fronteira.
- Docker Real: use credenciais/modelo reais do provedor apenas quando o comportamento visível ao usuário precisar do serviço real.
- Prefira ambos quando provarem riscos diferentes: determinístico para roteamento de bytes/payload, real para comportamento real do provedor.
Regras de Autorização
- Helpers exclusivos de teste ficam em
test/helpersouscripts/e2e/lib/<lane>/, não emsrc/**, a menos que a produção os importe. - O aplicativo instalado por pacote executa a partir de
/app; monte apenas caminhos explícitos de harness/helper como somente leitura. - Servidores falsos devem registrar requisições de fronteira como JSONL e os clientes devem afirmar o payload real da dependência, não apenas o sucesso do processo.
- Adicione o script do pacote e a lane em
scripts/lib/docker-e2e-scenarios.mjsna mesma alteração. - Se uma lane instalar um plugin do npm, defina a especificação via variável de ambiente para que caminhos publicados e locais de substituição sejam ambos testáveis.
Mídia e Visão
- A resposta esperada deve existir apenas em pixels ou na saída do provedor sendo testada.
- Use nomes de arquivo neutros, prompts neutros e sem vazamento de metadados.
- Tokens de bitmap/OCR aleatórios reutilizam o alfabeto seguro para OCR do repositório
24567ACEF, a menos que o teste possua um conjunto de glifos mais forte. - Torne a resposta esperada única por execução ao provar compreensão real de imagem.
E2E de chat.send
- Exija que
chat.sendretornestatus: "started"e uma stringrunId. - Aguarde a conclusão com
agent.wait. - Afirme o texto final visível ao usuário via
chat.historyquando a ordenação de eventos não for o comportamento sob teste. - Mantenha metadados de canal/conta de origem apenas quando o caminho do bug precisar de contexto de entrada/fila.
Verificação
Execute a menor prova que cubra a lane tocada:
pnpm exec oxfmt --write <arquivos alterados>
node --check <novos arquivos .mjs>
bash -n <novos arquivos .sh>
node scripts/run-vitest.mjs test/scripts/docker-e2e-plan.test.ts
OPENCLAW_SKIP_DOCKER_BUILD=1 pnpm test:docker:<lane>
Para lanes com provedor real, execute o script Docker real correspondente após o Docker determinístico estar verde. Finalize com $autoreview antes de commit/PR.