#!/usr/bin/env zsh
0=${(%):-%x}
setopt extended_glob

cd ${0:A:h:h}

local o_unit o_rev
zparseopts -D -M -- -unit=o_unit -rev=o_rev || return 1

testfiles=()
if (( $# > 0 )); then
  testfiles=($@)
elif (( $#o_unit )); then
  testfiles=($PWD/tests/*.md~*test_real*~*foo*)
else
  testfiles=($PWD/tests/*.md)
fi

# if tests are run in reverse order, I can catch places where I didn't teardown properly
if (( $#o_rev )); then
  testfiles=(${(O)testfiles})
fi

# foo example test command
# env -i PATH=$PATH FPATH=$FPATH \
#  zsh -f -- =clitest --list-run --progress dot --prompt '%' --color always $PWD/tests/foo.md

env -i PATH=$PATH FPATH=$FPATH PAGER=cat \
    zsh -f -- \
    =clitest \
        --list-run --progress dot --prompt '%' \
        --color always \
        --pre-flight 'git --version; print $PWD $VENDOR $OSTYPE =zsh $ZSH_VERSION $ZSH_PATCHLEVEL' \
        -- $testfiles
