#!/bin/sh # Runs this repo's Rust tests. Extra arguments are forwarded to each # `cargo test`, e.g. `./run-tests.sh transcript` to run just the transcript # tests in every workspace. # # Three workspaces, in dependency order: # # event-model the wire shape server/ and app-rust/ share, so the two # agree by construction rather than by review # server/ the backend's own logic (event normalization, transcript # cursors, config persistence, token auth) # app-rust/ the app itself: `client` (highlighter, ANSI parser, # transcript cache and fold, REST and SSE clients -- see # docs/CLIENT_CORE.md) and `ui` (the screens, drawn with # iris), plus the headless harness tests over the bench # fixture that need no window and no GPU. # # `iris/` is the UI framework and has its own tests; run them from there # (`cd iris && cargo test`). They are not in this loop because iris is not # about this product and its suite is the slower of the two. set -eu cd "$(dirname "$0")" for workspace in event-model server app-rust; do (cd "$workspace" && cargo test "$@") done