Add bats test suite for image processing scripts

Tests cover skip-already-processed logic, cleanup, idempotency, and
the config.sh single-source-of-truth invariant. bats-core, bats-assert,
and bats-support added as submodules under tests/libs/.
This commit is contained in:
2026-07-03 19:49:04 -04:00
parent 6901c66bcf
commit f5ed6617c5
11 changed files with 233 additions and 0 deletions
+30
View File
@@ -0,0 +1,30 @@
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
FIXTURES="$REPO_ROOT/tests/fixtures"
MOCKS="$REPO_ROOT/tests/mocks"
setup_mock_env() {
# Redirect ~/Applications/magick to our mock by overriding HOME
TEST_HOME="$(mktemp -d)"
mkdir -p "$TEST_HOME/Applications"
ln -s "$MOCKS/magick" "$TEST_HOME/Applications/magick"
export HOME="$TEST_HOME"
# Working dir for each test
TEST_WORKDIR="$(mktemp -d)"
}
teardown_mock_env() {
rm -rf "$TEST_HOME" "$TEST_WORKDIR"
}
make_zip() {
local zip_path="$1"; shift # destination zip path
local -a jpegs=("$@") # JPEG files to include
local tmpdir
tmpdir="$(mktemp -d)"
for jpg in "${jpegs[@]}"; do
cp "$jpg" "$tmpdir/"
done
(cd "$tmpdir" && zip -q "$zip_path" ./*.jpg)
rm -rf "$tmpdir"
}