Files
wraith/tasks/setup/test-infrastructure.md

1.6 KiB

id, name, status, depends_on, scope, risk, impact, level
id name status depends_on scope risk impact level
setup/test-infrastructure Set up test infrastructure with tokio test helpers and integration test skeleton pending
setup/project-init
narrow trivial component implementation

Description

Set up test infrastructure so that subsequent tasks can write tests as they implement. Add test helpers for creating in-memory transport streams (mock transport), and skeleton integration test files for each component.

The mock transport is critical — it lets us test SSH client/server flows without actual network I/O, per ADR-001's consequence that "mock transports can produce in-memory streams."

Acceptance Criteria

  • crates/wraith-core/tests/ directory with empty integration test skeletons: transport_tests.rs, client_tests.rs, server_tests.rs, auth_tests.rs
  • crates/wraith-core/src/testutil.rs module (behind #[cfg(test)] or a testutil feature) exporting MockTransport and MockStream
  • MockStream wraps tokio::io::DuplexStream implementing AsyncRead + AsyncWrite + Unpin + Send
  • MockTransport implements Transport trait (once defined) returning MockStream via connect()
  • MockTransportAcceptor implements TransportAcceptor (once defined) returning paired MockStream via accept()
  • cargo test succeeds (even if no real tests yet)

References

  • docs/architecture/transport.md — Transport trait contract
  • docs/architecture/decisions/001-pluggable-transport.md — "mock transports can produce in-memory streams"

Notes

To be filled by implementation agent

Summary

To be filled on completion