32 lines
1.1 KiB
Markdown
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
|
|
```
|