#!/usr/bin/env bats setup() { REPO_ROOT="$(cd "$BATS_TEST_DIRNAME/../../../../../" && pwd)" load "$REPO_ROOT/tests/test_helper/bats-support/load" load "$REPO_ROOT/tests/test_helper/bats-assert/load" SCRIPT="$(cd "$BATS_TEST_DIRNAME/../scripts" && pwd)/validate-structure.sh" TMPDIR="$(mktemp -d)" } teardown() { rm -rf "$TMPDIR" } @test "fails on an empty AGENTS.md" { : > "$TMPDIR/AGENTS.md" run bash "$SCRIPT" "$TMPDIR" assert_failure assert_output --partial "empty" } @test "fails on an unfilled placeholder AGENTS.md" { cat > "$TMPDIR/AGENTS.md" <<'EOF' # AGENTS.md ## Setup FILL IN: describe setup commands here. EOF run bash "$SCRIPT" "$TMPDIR" assert_failure assert_output --partial "placeholder" } @test "passes with INFO on real content missing an optional section" { cat > "$TMPDIR/AGENTS.md" <<'EOF' # AGENTS.md ## Setup commands - Install deps: `pnpm install` - Run tests: `pnpm test` ## Code style - TypeScript strict mode, single quotes, no semicolons. EOF run bash "$SCRIPT" "$TMPDIR" assert_success assert_output --partial "INFO" assert_output --partial "security" } @test "suggests trimming a nested AGENTS.md that duplicates the root file" { mkdir -p "$TMPDIR/packages/api" cat > "$TMPDIR/AGENTS.md" <<'EOF' # AGENTS.md ## Setup commands - Install deps: `pnpm install` - Run tests: `pnpm test` - Lint: `pnpm lint` - Build: `pnpm build` EOF cat > "$TMPDIR/packages/api/AGENTS.md" <<'EOF' # AGENTS.md ## Setup commands - Install deps: `pnpm install` - Run tests: `pnpm test` - Lint: `pnpm lint` - Build: `pnpm build` EOF run bash "$SCRIPT" "$TMPDIR" assert_success assert_output --partial "SUGGESTION" assert_output --partial "packages/api/AGENTS.md" }