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/.
31 lines
821 B
Bash
31 lines
821 B
Bash
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"
|
|
}
|