nvm/test/fast/Unit tests/nvm_is_normalized_semver

45 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
\. ../../../nvm.sh
\. ../../generated_semvers.sh
# nvm_is_normalized_semver validates that a given semver adheres to a particular grammar. See grammar with definition of function nvm_is_normalized_semver() in nvm.sh.
# POSITIVE TEST CASES
positive_test_cases="$VALID_NORMALIZED_SEMVERS"
if [ -z "$positive_test_cases" ]; then
die 'positive test cases are empty'
fi
prev_semver=''
while [ -n "$positive_test_cases" ]; do
semver=$(echo "$positive_test_cases" | head -n1)
if [ -z "$semver" ] || ! nvm_is_normalized_semver "$semver"; then
die "nvm_is_normalized_semver POSITIVE test case failed. semver: '$semver'.\n"
fi
if [ "$prev_semver" = "$semver" ]; then
die "something is wrong. positive test cases received the same test case twice in a row. semver: '$semver'"
fi
prev_semver="$semver"
positive_test_cases=$(echo "$positive_test_cases" | tail -n +2)
done
# NEGATIVE TEST CASES
negative_test_cases=$(printf "%s\n%s" "$VALID_NON_NORMALIZED_SEMVERS" "$INVALID_SEMVERS_FOR_PKG_JSON")
if [ -z "$negative_test_cases" ]; then
die 'negative test cases are empty'
fi
prev_semver='initialized to non empty string'
while [ -n "$negative_test_cases" ]; do
semver=$(echo "$negative_test_cases" | head -n1)
if nvm_is_normalized_semver "$semver"; then
die "nvm_is_normalized_semver NEGATIVE test case failed. semver: '$semver'.\n"
fi
if [ "$prev_semver" = "$semver" ]; then
die "something is wrong. negative test cases received the same test case twice in a row. semver: '$semver'"
fi
prev_semver="$semver"
negative_test_cases=$(echo "$negative_test_cases" | tail -n +2)
done
exit 0