Skip to main content

run-tests

Run the tests, run one spec, run e2e locally or on Daytona, investigate a skipped spec. Use for executing @openwork/testkit agent-first verification.

Datos de origen

Repositorio
different-ai/openwork
Última actividad en el origen
15 de octubre de 2026 a las 23:41
Idioma detectado de SKILL.md
inglés
Estrellas
24.131
Forks
2444

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
run-tests
description
Run the tests, run one spec, run e2e locally or on Daytona, investigate a skipped spec. Use for executing @openwork/testkit agent-first verification.
# Skill: Run Tests ## Run the landable tree - Check out the exact PR head that will land. After any rebase or cherry-pick, discard the old verdict and run again. - Run one test at a time so each failure and ambient test evidence has one owner. ## Choose the execution environment ```bash pnpm evals:e2e <slug> ``` The CLI prints the placement and reason; copy that line into the report. Use `--local` only when the user asks for local. `--daytona` requires Daytona. Never switch lanes to turn a red Daytona run green. Know what each placement runs before reading a verdict: - Daytona (the default when the `daytona` CLI is logged in) builds `OPENWORK_EVAL_REF`, which defaults to `dev`, not your working tree. To test a branch, push it and export `OPENWORK_EVAL_REF=$(git rev-parse HEAD)`; add `--strict-ref` so a mismatch fails instead of warning. - `--local` runs your working tree. A spec whose world uses `appWeb` stays in headless Chrome. A spec whose world uses `desktop` (`seed.desktop`, `app()`) opens an Electron window that takes focus on this computer; run those on Daytona unless the user asks for a local window. ## Run the core journey The test every PR runs. Its world is a Freestyle VM, so this needs only the evals install and the Freestyle key: ```bash FREESTYLE_API_KEY="$(infisical secrets get FREESTYLE_API_KEY --env dev --path /openwork-ops --plain --silent)" \ node evals/bin/evals.mjs core/core-chat.e2e.test.ts --local --engine v1 --surface web ``` It runs against the pushed `HEAD` commit; push first. After changing the world itself, run `node evals/scripts/check-freestyle-world.ts --base <sha>` instead. ## Prepare local fallback ```bash pnpm --filter @openwork/types build pnpm --filter @openwork-ee/den-db build pnpm --filter @openwork/email build pnpm dev:den:mysql ``` - Local `server()` requires MySQL at `127.0.0.1:3306`. - Build those workspace dependencies before local Den; otherwise den-api imports can fail. - If the checkout path contains spaces, set `OPENWORK_EVAL_SURFACES_DIR` to a space-free path before E2E tests. node-gyp and electron-rebuild require it. - Local Electron profiles, and the `electron.log` inside them, are removed when a journey ends. Set `OPENWORK_EVAL_SURFACE_LOGS_DIR` to a directory outside the surfaces directory to keep a copy of each log; the packaged smoke does. ## Choose one lane - Run one app/Den-driving E2E test: ```bash pnpm evals:e2e <name> ``` - The CLI owns placement and prints `placement: <daytona|local> (<reason>)`. ## Match the runtime Check what runtime the changed code ships on before trusting a green run. `apps/server` runs on Bun in evals; Desktop runs that same code on Electron's Node (undici). If the change touches fetch, streams, signals, GC, or timers, run it on the shipping runtime too: ```bash ELECTRON_RUN_AS_NODE=1 apps/desktop/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron --expose-gc <script> ``` A green run on the wrong runtime is not evidence. ## Read the verdict - Record the exact command, exit code, and passed/failed/skipped counts. - Report each skip as `skipped — needs: X`; never call it passed. A green command containing skips makes the overall verdict `Incomplete`. - Use `Passed`, `Incomplete`, or `Failed` for the overall result. ## Iterate, then cold-boot - While iterating, reuse a warm Den with `OPENWORK_EVAL_DEN_API_URL`. - Before declaring `Passed`, remove the reuse override and cold-boot through `server()` on the same commit. - Inject secrets with `infisical run --silent --`; never print or echo values.
Ver en GitHub