test quiet mode

This commit is contained in:
Nathaniel Landau
2021-08-13 16:36:36 -04:00
parent da0b0e272a
commit 78833b77d0

View File

@@ -1,5 +1,4 @@
#!/usr/bin/env bats #!/usr/bin/env bats
#shellcheck disable
load 'test_helper/bats-support/load' load 'test_helper/bats-support/load'
load 'test_helper/bats-file/load' load 'test_helper/bats-file/load'
@@ -7,15 +6,17 @@ load 'test_helper/bats-assert/load'
######## SETUP TESTS ######## ######## SETUP TESTS ########
ROOTDIR="$(git rev-parse --show-toplevel)" ROOTDIR="$(git rev-parse --show-toplevel)"
SCRIPT="${ROOTDIR}/scriptTemplate.sh" s="${ROOTDIR}/scriptTemplate.sh"
if [ -f "${SCRIPT}" ]; then if [ -f "${s}" ]; then
base="$(basename "${SCRIPT}")" base="$(basename "${s}")"
else else
echo "Can not find '${SCRIPT}" >&2 printf "No executable '${s}' found.\n" >&2
printf "Can not run tests.\n" >&2
exit 1 exit 1
fi fi
setup() { setup() {
TESTDIR="$(temp_make)" TESTDIR="$(temp_make)"
@@ -24,12 +25,13 @@ setup() {
BATSLIB_FILE_PATH_REM="#${TEST_TEMP_DIR}" BATSLIB_FILE_PATH_REM="#${TEST_TEMP_DIR}"
BATSLIB_FILE_PATH_ADD='<temp>' BATSLIB_FILE_PATH_ADD='<temp>'
pushd "${TESTDIR}" &>/dev/null s="$s --logfile=${TESTDIR}/logs/log.txt" # Logs go to temp directory
pushd "${TESTDIR}" >&2
} }
teardown() { teardown() {
popd &>/dev/null popd >&2
temp_del "${TESTDIR}" temp_del "${TESTDIR}"
} }
@@ -42,7 +44,7 @@ teardown() {
} }
@test "Fail - fail on bad args and create logfile" { @test "Fail - fail on bad args and create logfile" {
run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" -K run $s -K
assert_failure assert_failure
assert_output --partial "[ fatal] invalid option: '-K'" assert_output --partial "[ fatal] invalid option: '-K'"
@@ -53,14 +55,14 @@ teardown() {
} }
@test "success" { @test "success" {
run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" run $s
assert_success assert_success
assert_output --partial "[ info] Hello world" assert_output --partial "[ info] Hello world"
assert_file_not_exist "${TESTDIR}/logs/log.txt" assert_file_not_exist "${TESTDIR}/logs/log.txt"
} }
@test "success and INFO level log" { @test "success and INFO level log" {
run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" --loglevel=INFO run $s --loglevel=INFO
assert_success assert_success
assert_output --partial "[ info] Hello world" assert_output --partial "[ info] Hello world"
@@ -69,15 +71,24 @@ teardown() {
} }
@test "Usage (-h)" { @test "Usage (-h)" {
run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" -h run $s -h
assert_success assert_success
assert_line --partial --index 0 "$base [OPTION]... [FILE]..." assert_line --partial --index 0 "$base [OPTION]... [FILE]..."
} }
@test "Usage (--help)" { @test "Usage (--help)" {
run "${SCRIPT}" --logfile="${TESTDIR}/logs/log.txt" --help run $s --help
assert_success assert_success
assert_line --partial --index 0 "$base [OPTION]... [FILE]..." assert_line --partial --index 0 "$base [OPTION]... [FILE]..."
} }
@test "quiet (-q)" {
run $s -q --loglevel=INFO
assert_success
assert_output ""
run cat "${TESTDIR}/logs/log.txt"
assert_line --index 0 --regexp "\[ info\].*Hello world"
}