#!/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-primary dir to its focused tests" { run bash "$REPO_ROOT/scripts/test-changed.sh" --list --paths \ dankserver/frank-primary/quadlet/frank-primary.container [ "$status" -eq 0 ] [[ "$output" == *"tests/frank_primary_unit.bats"* ]] [[ "$output" == *"tests/deployment_scoping.bats"* ]] [[ "$output" == *"tests/docs_completeness.bats"* ]] [[ "$output" != *"tests/homepage_pages.bats"* ]] # The retired frank-medium tree must no longer select any LLM seam: the # mappings were removed with the service, and a stale case would keep # firing tests for an archived runtime. Both archive shapes — the radiance # Quadlet era and the llama.cpp layersplit trio before it — 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 [ "$status" -eq 0 ] [[ "$output" != *"tests/frank_medium_unit.bats"* ]] [[ "$output" != *"tests/frank_primary_unit.bats"* ]] }