#!/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 a service script to its focused tests" { run bash "$REPO_ROOT/scripts/test-changed.sh" --list --paths scripts/serve-frank-small.sh [ "$status" -eq 0 ] [[ "$output" == *"tests/scripts_syntax.bats"* ]] [[ "$output" == *"tests/llm_units.bats"* ]] [[ "$output" == *"tests/llm_secrets.bats"* ]] }