#!/usr/bin/env bash # Row 152 owner's gate (sage-0479): the bus, cli, business and webui suites and every scripts/test-*.sh, # on base.txt plus build.patch. One log per step under gate/. Each suite runs its package.json test. set -uo pipefail WT=${1:-$HOME/dewey-scratch/r152/wt} OUT=$(cd "$(dirname "$0")" && pwd)/gate mkdir -p "$OUT" export TMPDIR=$HOME/dewey-scratch/tmp # test-task.sh's live cases run `docker compose run` from $WT (mosaic-task.mjs passes its env through). # An explicit project name keeps them off the dir-named `wt` project; its network goes at exit (Mos, sage-0447). export COMPOSE_PROJECT_NAME=dewey-r152 trap 'docker network rm "${COMPOSE_PROJECT_NAME}_default" >/dev/null 2>&1 && echo "removed network ${COMPOSE_PROJECT_NAME}_default"' EXIT status=0 for p in bus cli business webui; do start=$(date -u +%FT%TZ) case $p in bus|cli) t=(tests/*.test.mjs) ;; *) t=(tests/) ;; esac (cd "$WT/packages/$p" && node --test "${t[@]}") >"$OUT/pkg-$p.log" 2>&1 rc=$? counts=$(grep -E '^ℹ (tests|pass|fail|skipped) ' "$OUT/pkg-$p.log" | awk '{printf "%s=%s ", $2, $3}') echo "pkg-$p start=$start end=$(date -u +%FT%TZ) rc=$rc $counts" [ "$rc" -eq 0 ] || status=1 done for s in "$WT"/scripts/test-*.sh; do n=$(basename "$s" .sh) start=$(date -u +%FT%TZ) (cd "$WT" && bash "scripts/$n.sh") >"$OUT/$n.log" 2>&1 rc=$? echo "$n start=$start end=$(date -u +%FT%TZ) rc=$rc" [ "$rc" -eq 0 ] || status=1 done exit $status