Skip to content

refactor(e2e): replace bash e2e tests with Rust integration tests#150

Merged
drew merged 3 commits intomainfrom
anewberry/116-replace-bash-e2e-with-rust-integration-tests
Mar 6, 2026
Merged

refactor(e2e): replace bash e2e tests with Rust integration tests#150
drew merged 3 commits intomainfrom
anewberry/116-replace-bash-e2e-with-rust-integration-tests

Conversation

@drew
Copy link
Collaborator

@drew drew commented Mar 6, 2026

Closes #116

Summary

  • Replace 3 bash e2e test scripts (test_sandbox_custom_image.sh, test_sandbox_sync.sh, test_port_forward.sh) with a standalone Rust crate (nemoclaw-e2e) at e2e/rust/
  • Shared test harness provides RAII sandbox cleanup (SandboxGuard), ANSI output parsing, binary resolution, and TCP port utilities
  • Feature-gated with --features e2e so cargo test --workspace skips them; mise run e2e:rust builds the CLI and runs the tests
  • Simplified mise task structure: e2e (all), e2e:rust, e2e:python

Replace 3 bash e2e test scripts with a standalone Rust crate (nemoclaw-e2e)
that invokes the nemoclaw CLI as a subprocess. The new tests use a shared
harness with RAII sandbox cleanup, ANSI output parsing, and TCP port
utilities.

Key decisions:
- Standalone crate outside the workspace to avoid Dockerfile/Cargo.toml coupling
- Feature-gated tests (--features e2e) so cargo test --workspace skips them
- mise e2e:rust task builds the CLI binary before running tests
- Simplified task structure: e2e, e2e:rust, e2e:python

Closes #116
@drew drew self-assigned this Mar 6, 2026
@drew drew requested review from johntmyers and pimlock March 6, 2026 08:48
@drew drew added the test:e2e Requires end-to-end coverage label Mar 6, 2026
drew added 2 commits March 6, 2026 00:55
The Rust e2e tests invoke the nemoclaw CLI which shells out to ssh for
sandbox exec, sync, and port forwarding. The CI container was missing
openssh-client, causing 'No such file or directory' when the CLI tried
to spawn the ssh process.

Add openssh-client to Dockerfile.ci permanently and install it inline
in the e2e workflow as an interim measure until the CI image is rebuilt.
@drew drew merged commit f7984b5 into main Mar 6, 2026
10 checks passed
@drew drew deleted the anewberry/116-replace-bash-e2e-with-rust-integration-tests branch March 6, 2026 17:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor(e2e): replace bash e2e tests with Rust integration tests that invoke the CLI

1 participant