Skip to content

Commit fa73599

Browse files
authored
Merge pull request #18 from rivet-dev/ralph/e2e-docker-local-only
Remove GH Actions e2e-docker workflow, use local Docker exclusively
2 parents fe53e03 + b43e6f3 commit fa73599

87 files changed

Lines changed: 8424 additions & 2258 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/e2e-docker.yml

Lines changed: 0 additions & 95 deletions
This file was deleted.

CLAUDE.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
- every publishable package must include a `README.md` with the standard format: title, tagline, and links to website, docs, and GitHub
1414
- if `package.json` has a `"files"` array, `"README.md"` must be listed in it
1515

16+
## Testing Policy
17+
18+
- NEVER mock external services in tests — use real implementations (Docker containers for databases/services, real HTTP servers for network tests, real binaries for CLI tool tests)
19+
- tests that validate sandbox behavior MUST run code through the secure-exec sandbox (NodeRuntime/proc.exec()), never directly on the host
20+
- CLI tool tests (Pi, Claude Code, OpenCode) must execute inside the sandbox: Pi runs as JS in the VM, Claude Code and OpenCode spawn their binaries via the sandbox's child_process.spawn bridge
21+
- e2e-docker fixtures connect to real Docker containers (Postgres, MySQL, Redis, SSH/SFTP) — skip gracefully via `skipUnlessDocker()` when Docker is unavailable
22+
- interactive/PTY tests must use `kernel.openShell()` with `@xterm/headless`, not host PTY via `script -qefc`
23+
1624
## Tooling
1725

1826
- use pnpm, vitest, and tsc for type checks

0 commit comments

Comments
 (0)