#!/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" ] }