From 85d5734e2d1125c9b04fed3ec5a3daa56ab4fcc7 Mon Sep 17 00:00:00 2001 From: Nathaniel Landau Date: Mon, 26 Jul 2021 11:37:13 -0400 Subject: [PATCH] initial commit --- test/scriptTemplate.bats | 83 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100755 test/scriptTemplate.bats diff --git a/test/scriptTemplate.bats b/test/scriptTemplate.bats new file mode 100755 index 0000000..7481e47 --- /dev/null +++ b/test/scriptTemplate.bats @@ -0,0 +1,83 @@ +#!/usr/bin/env bats +#shellcheck disable + +load 'test_helper/bats-support/load' +load 'test_helper/bats-file/load' +load 'test_helper/bats-assert/load' + +######## SETUP TESTS ######## +ROOTDIR="$(git rev-parse --show-toplevel)" +SCRIPT="${ROOTDIR}/scriptTemplate.sh" + +if [ -f "${SCRIPT}" ]; then + base="$(basename "${SCRIPT}")" +else + echo "Can not find '${SCRIPT}" >&2 + exit 1 +fi + +setup() { + + TESTDIR="$(temp_make)" + curPath="${PWD}" + + BATSLIB_FILE_PATH_REM="#${TEST_TEMP_DIR}" + BATSLIB_FILE_PATH_ADD='' + + pushd "${TESTDIR}" &>/dev/null + +} + +teardown() { + popd &>/dev/null + temp_del "${TESTDIR}" +} + + +######## RUN TESTS ########## +@test "sanity" { + run true + assert_success + assert [ "$output" = "" ] +} + +@test "Fail - fail on bad args and create logfile" { + run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" -K + + assert_failure + assert_output --partial "[ fatal] invalid option: '-K'" + assert_file_exist "${TESTDIR}/logs/log.txt" + + run cat "${TESTDIR}/logs/log.txt" + assert_line --index 0 --regexp "\[ fatal\] .* invalid option: '-K'\. \(.*" +} + +@test "success" { + run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" + assert_success + assert_output --partial "[ info] Hello world" + assert_file_not_exist "${TESTDIR}/logs/log.txt" +} + +@test "success and INFO level log" { + run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" --loglevel=INFO + assert_success + assert_output --partial "[ info] Hello world" + + run cat "${TESTDIR}/logs/log.txt" + assert_line --index 0 --regexp "\[ info\].*Hello world" +} + +@test "Usage (-h)" { + run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" -h + + assert_success + assert_line --partial --index 0 "$base [OPTION]... [FILE]..." +} + +@test "Usage (--help)" { + run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" --help + + assert_success + assert_line --partial --index 0 "$base [OPTION]... [FILE]..." +}