Documentation
¶
Overview ¶
E2E orchestrator — drives a clean, isolated E2E test session against one ClickHouse + one WaveHouse, then runs the vitest suite once.
Lifecycle:
- Start ClickHouse via testcontainers-go (random host ports — no conflict with `make dev` or other compose stacks).
- Pick a random free TCP port on 127.0.0.1 and start bin/wavehouse-cov bound to it (WH_SERVER_PORT) with auth enabled. Random port avoids conflicts with `make dev`, dev servers, and previous runs that may have leaked sockets.
- Run the vitest harness against the running stack. CLICKHOUSE_URL and WAVEHOUSE_URL come in via env.
- SIGINT the cover binary (flushes coverage), terminate the testcontainer.
WaveHouse subprocess output is captured to tmp/wavehouse-cov.log rather than streamed to the orchestrator's console — it's noisy JSON and flooded the test output. On vitest failure the last lines are surfaced to stderr with a banner so a CI failure is debuggable without grepping. Set V=1 to stream live for interactive debugging.
Invoked by the Makefile's `test-e2e` recipe via:
go run ./scripts/orchestrator
Click to show internal directories.
Click to hide internal directories.