nvm/test/fast/Unit tests/nvm_interpret_semver

39 lines
998 B
Bash
Executable File

#!/bin/sh
# TODO this test currently takes about 1 minute and will take even longer with the rest of the needed test cases so maybe it shouldn't live in the "fast" tests directory.
die () { printf "$@" ; exit 1; }
\. ../../../nvm.sh
newest_node=$(nvm_remote_version | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
x5='5.12.0'
# POSITIVE TEST CASES
# INPUT:EXPECTED_OUTPUT
test_cases="*:$newest_node
5:$x5
x:$newest_node
X:$newest_node
7.1.0 || 7.3.0 || 7.2.0:7.3.0
7.1.0 7.3.0 7.2.0:
5:$x5
5.x:$x5
5.x.x:$x5
5.X:$x5
5.X.X:$x5
7.5.0:7.5.0"
while [ -n "$test_cases" ]; do
LINE=$(echo "$test_cases" | head -n1)
INPUT=$(echo "$LINE" | awk -F: '{ print $1 }')
EXPECTED_OUTPUT=$(echo "$LINE" | awk -F: '{ print $2 }')
ACTUAL_OUTPUT=$(nvm_interpret_semver "$INPUT")
[ "$ACTUAL_OUTPUT" = "$EXPECTED_OUTPUT" ] \
&& [ -n "$INPUT" ] \
|| die "Expected output: '$EXPECTED_OUTPUT'. Actual output: '$ACTUAL_OUTPUT'. Input: '$INPUT'.\n"
test_cases=$(echo "$test_cases" | tail -n +2)
done
exit 0