#!/usr/bin/env bats # Seam: the changed-test wrapper selects only the tests associated with # staged paths and refuses to silently run the entire suite. load helpers @test "changed-test wrapper is executable and uses staged diff by default" { [ -x "$REPO_ROOT/scripts/test-changed.sh" ] [ -x "$REPO_ROOT/.githooks/pre-commit" ] run grep -F 'scripts/test-changed.sh' "$REPO_ROOT/.githooks/pre-commit" [ "$status" -eq 0 ] run grep -F 'git diff --cached' "$REPO_ROOT/scripts/test-changed.sh" [ "$status" -eq 0 ] } @test "changed-test wrapper maps a compose change to compose and environment tests" { run bash "$REPO_ROOT/scripts/test-changed.sh" --list --paths dankserver/compose.yaml [ "$status" -eq 0 ] [[ "$output" == *"tests/compose_validity.bats"* ]] [[ "$output" == *"tests/env_consistency.bats"* ]] [[ "$output" != *"tests/homepage_pages.bats"* ]] } @test "changed-test wrapper maps the frank-archon trio to its focused tests" { # The root-unit shape since the 2026-09-26 swap: the trio lives in # scripts/ and must select the unit seam before the generic # scripts/*.service fallbacks can swallow it. run bash "$REPO_ROOT/scripts/test-changed.sh" --list --paths \ scripts/frank-archon.env \ scripts/frank-archon.service \ scripts/serve-frank-archon.sh [ "$status" -eq 0 ] [[ "$output" == *"tests/frank_archon_unit.bats"* ]] [[ "$output" == *"tests/llm_units.bats"* ]] [[ "$output" == *"tests/deployment_scoping.bats"* ]] [[ "$output" != *"tests/homepage_pages.bats"* ]] # The retired trees must no longer select any LLM seam: the mappings # were removed with the services, and a stale case would keep firing # tests for archived runtimes. All three archive shapes — the radiance # Quadlet era, the llama.cpp layersplit trio, and the lucebox quadlet # dir — map to nothing. run bash "$REPO_ROOT/scripts/test-changed.sh" --list --paths \ dankserver/.AGENTTRASH/20260926-frank-medium-radiance/frank-medium.container \ scripts/.AGENTTRASH/20260920-llama-layersplit/serve-frank-medium.sh.llamacpp-layersplit \ dankserver/.AGENTTRASH/20260926-llamacpp-cutover/frank-archon.container [ "$status" -eq 0 ] [[ "$output" != *"tests/frank_medium_unit.bats"* ]] [[ "$output" != *"tests/frank_archon_unit.bats"* ]] }