superlint/test/lib/globalsLanguagesTest.sh

51 lines
1.3 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -o errexit
set -o nounset
set -o pipefail
# shellcheck source=/dev/null
source "test/testUtils.sh"
# shellcheck source=/dev/null
source "lib/globals/languages.sh"
function LanguageArrayNotEmptyTest() {
local FUNCTION_NAME
FUNCTION_NAME="${FUNCNAME[0]}"
info "${FUNCTION_NAME} start"
if [ ${#LANGUAGE_ARRAY[@]} -gt 0 ]; then
debug "Language array is not empty as expected"
else
fatal "Language array is empty"
fi
notice "${FUNCTION_NAME} PASS"
}
function LanguageTestPresenceTest() {
local FUNCTION_NAME
FUNCTION_NAME="${FUNCNAME[0]}"
info "${FUNCTION_NAME} start"
for LANGUAGE in "${LANGUAGE_ARRAY[@]}"; do
local -l LOWERCASE_LANGUAGE="${LANGUAGE}"
# shellcheck disable=SC2153
local LINTER_TEST_CASE_DIRECTORY="${LINTERS_TEST_CASE_DIRECTORY}/${LOWERCASE_LANGUAGE}"
if [[ ! -d "${LINTER_TEST_CASE_DIRECTORY}" ]]; then
fatal "Test case directory for ${LANGUAGE} (${LINTER_TEST_CASE_DIRECTORY}) doesn't exist or is not readable."
fi
if [ -z "$(ls -A "${LINTER_TEST_CASE_DIRECTORY}")" ]; then
fatal "Test case directory for ${LANGUAGE} (${LINTER_TEST_CASE_DIRECTORY}) is empty, and it should contain test cases for ${LANGUAGE}."
fi
done
notice "${FUNCTION_NAME} PASS"
}
LanguageArrayNotEmptyTest
LanguageTestPresenceTest