Files
2026-07-13 12:38:34 +08:00

32 lines
1.1 KiB
Markdown

# CLI E2E Tests
End-to-end tests for the compiled `composio` CLI binary.
## How It Works
Each test suite runs the `composio` binary inside a scratch Debian Docker container built from `Dockerfile.cli`. The binary is compiled via `bun build --compile` during the Docker image build, producing a self-contained executable with no runtime dependencies.
Tests use `runCmd` to execute shell commands in the container and assert on exit code, stdout, and stderr. When stdout is piped (e.g., `composio version > out.txt`), the CLI suppresses all decoration and writes only machine-readable data — these tests verify that contract.
## Test Suites
| Suite | Description | Env Vars |
| --- | --- | --- |
| [version](./version/) | `composio version` output and exit code | None |
| [whoami](./whoami/) | `composio whoami` prints the API key | `COMPOSIO_USER_API_KEY` |
## Isolation Tool
**Docker** with the CLI version resolved from the current monorepo build (`cli: ['current']`).
## Running
```bash
# All CLI e2e tests
pnpm test:e2e:cli
# A specific suite
cd ts/e2e-tests/cli/version && pnpm test:e2e:cli
cd ts/e2e-tests/cli/whoami && pnpm test:e2e:cli
```