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.

Quellinformationen

Repository
different-ai/openwork
Letzte Quellaktivität
27. Oktober 2026 um 18:05
Erkannte Sprache von SKILL.md
Englisch
Sterne
24.452
Forks
2.484

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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.
Auf GitHub ansehen