aboutsummaryrefslogtreecommitdiff
path: root/.ai/scripts/tests
diff options
context:
space:
mode:
Diffstat (limited to '.ai/scripts/tests')
-rw-r--r--.ai/scripts/tests/inbox-status.bats56
1 files changed, 56 insertions, 0 deletions
diff --git a/.ai/scripts/tests/inbox-status.bats b/.ai/scripts/tests/inbox-status.bats
new file mode 100644
index 0000000..bc8a734
--- /dev/null
+++ b/.ai/scripts/tests/inbox-status.bats
@@ -0,0 +1,56 @@
+#!/usr/bin/env bats
+# Tests for inbox-status: list unprocessed inbox handoffs, exit nonzero if any.
+
+setup() {
+ SCRIPT="$(cd "$(dirname "$BATS_TEST_FILENAME")/.." && pwd)/inbox-status"
+ TMP="$(mktemp -d)"
+}
+
+teardown() {
+ rm -rf "$TMP"
+}
+
+@test "inbox-status: no inbox/ dir exits 2" {
+ cd "$TMP"
+ run "$SCRIPT"
+ [ "$status" -eq 2 ]
+}
+
+@test "inbox-status: only .gitkeep is clean (exit 0)" {
+ mkdir "$TMP/inbox"
+ touch "$TMP/inbox/.gitkeep"
+ cd "$TMP"
+ run "$SCRIPT"
+ [ "$status" -eq 0 ]
+ [[ "$output" == *"0 pending"* ]]
+}
+
+@test "inbox-status: a handoff is pending (exit 1, listed)" {
+ mkdir "$TMP/inbox"
+ touch "$TMP/inbox/.gitkeep"
+ echo body > "$TMP/inbox/2026-05-31-from-work-thing.org"
+ cd "$TMP"
+ run "$SCRIPT"
+ [ "$status" -eq 1 ]
+ [[ "$output" == *"1 pending"* ]]
+ [[ "$output" == *"2026-05-31-from-work-thing.org"* ]]
+}
+
+@test "inbox-status: excludes lint-followups.org and PROCESSED-* artifacts" {
+ mkdir "$TMP/inbox"
+ touch "$TMP/inbox/.gitkeep" "$TMP/inbox/lint-followups.org" "$TMP/inbox/PROCESSED-old.org"
+ cd "$TMP"
+ run "$SCRIPT"
+ [ "$status" -eq 0 ]
+ [[ "$output" == *"0 pending"* ]]
+}
+
+@test "inbox-status: -q suppresses the per-item lines" {
+ mkdir "$TMP/inbox"
+ echo body > "$TMP/inbox/handoff.org"
+ cd "$TMP"
+ run "$SCRIPT" -q
+ [ "$status" -eq 1 ]
+ [[ "$output" == *"1 pending"* ]]
+ [[ "$output" != *" handoff.org"* ]]
+}