diff --git a/scripts/test b/scripts/test new file mode 100755 index 0000000..0e5e898 --- /dev/null +++ b/scripts/test @@ -0,0 +1,20 @@ +#!/bin/bash +tempfile=".test_output.tmp" + +if [[ -n $1 ]]; then + nvim --headless --noplugin -u specs/init.vim -c "PlenaryBustedFile $1" | tee "${tempfile}" +else + nvim --headless --noplugin -u specs/init.vim -c "PlenaryBustedDirectory specs/ {minimal_init = 'specs/init.vim'}" | tee "${tempfile}" +fi + +# Plenary doesn't emit exit code 1 when tests have errors during setup +errors=$(sed 's/\x1b\[[0-9;]*m//g' "${tempfile}" | awk '/(Errors|Failed) :/ {print $3}' | grep -v '0') + +rm "${tempfile}" + +if [[ -n $errors ]]; then + echo "Tests failed" + exit 1 +fi + +exit 0