diff options
Diffstat (limited to '.ai/scripts/tests/flashcard-sync.bats')
| -rw-r--r-- | .ai/scripts/tests/flashcard-sync.bats | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/.ai/scripts/tests/flashcard-sync.bats b/.ai/scripts/tests/flashcard-sync.bats new file mode 100644 index 0000000..608a280 --- /dev/null +++ b/.ai/scripts/tests/flashcard-sync.bats @@ -0,0 +1,38 @@ +#!/usr/bin/env bats +# Tests for the flashcard-sync wrapper: argument handling + the stats gate. +# The clean end-to-end path runs flashcard-to-anki.py (uv-resolved genanki) and is +# not exercised here; these cover the guard paths that stop before that step. + +setup() { + SCRIPT_DIR="$(cd "$(dirname "$BATS_TEST_FILENAME")/.." && pwd)" + SYNC="$SCRIPT_DIR/flashcard-sync" + TMP="$(mktemp -d)" +} + +teardown() { + rm -rf "$TMP" +} + +@test "flashcard-sync: no args exits 2" { + run "$SYNC" + [ "$status" -eq 2 ] +} + +@test "flashcard-sync: missing source file exits 2" { + run "$SYNC" "$TMP/nope.org" + [ "$status" -eq 2 ] +} + +@test "flashcard-sync: stats gate failure exits 1 and writes no apkg" { + cat > "$TMP/dirty.org" <<'EOF' +#+TITLE: DeepSat Org-Drill Flashcards + +* Section +** DeepSat :drill: +*** Answer +A satellite company. +EOF + run "$SYNC" "$TMP/dirty.org" + [ "$status" -eq 1 ] + [ ! -f "$HOME/sync/phone/anki/dirty.apkg" ] +} |
