#!/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-medium trio to its focused tests" { run bash "$REPO_ROOT/scripts/test-changed.sh" --list --paths scripts/frank-medium.env [ "$status" -eq 0 ] [[ "$output" == *"tests/frank_medium_unit.bats"* ]] [[ "$output" == *"tests/deployment_scoping.bats"* ]] [[ "$output" != *"tests/homepage_pages.bats"* ]] }