refactored tests

This commit is contained in:
edwmurph 2018-05-28 12:19:39 -04:00
parent 10e010eb80
commit c996ac7c5c
4 changed files with 43 additions and 48 deletions

View File

@ -114,10 +114,7 @@ xx:xx
# - validate that leading trailing spaces and tabs are removed # - validate that leading trailing spaces and tabs are removed
TEST_SEMVERS="$TEST_SEMVERS TEST_SEMVERS="$TEST_SEMVERS
1 1 :1 1 1 1 :1 1
1 1 :1 1" 2 2 :2 2"
# remove first line which is just an empty line
TEST_SEMVERS=$(echo "$TEST_SEMVERS" | tail -n +2)
# POSITIVE TEST CASES # POSITIVE TEST CASES
@ -129,22 +126,22 @@ PREV_TEST_SEMVER=''
for TEMPLATE_NAME in package_json_templates/_valid_*; do for TEMPLATE_NAME in package_json_templates/_valid_*; do
while [ -n "$TEST_SEMVERS_COPY" ]; do while [ -n "$TEST_SEMVERS_COPY" ]; do
LINE=$(echo "$TEST_SEMVERS_COPY" | head -n1) LINE=$(echo "$TEST_SEMVERS_COPY" | head -n1)
TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2)
[ -n "$LINE" ] || continue
TEST_SEMVER_INPUT=$(echo "$LINE" | awk -F: '{ print $1 }') TEST_SEMVER_INPUT=$(echo "$LINE" | awk -F: '{ print $1 }')
EXPECTED_OUTPUT=$(echo "$LINE" | awk -F: '{ print $2 }') EXPECTED_OUTPUT=$(echo "$LINE" | awk -F: '{ print $2 }')
TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2)
[ "$PREV_TEST_SEMVER" = "$TEST_SEMVER_INPUT" ] \ if [ "$PREV_TEST_SEMVER" == "$TEST_SEMVER_INPUT" ]; then
&& die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #1). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n" die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #1). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n"
fi
PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT") PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT")
PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3) PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3)
ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS") ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS")
[ "$ACTUAL_OUTPUT" = "$EXPECTED_OUTPUT" ] \ if [ "$ACTUAL_OUTPUT" != "$EXPECTED_OUTPUT" ] || [ -z "$ACTUAL_OUTPUT" ] || [ -z "$PKG_JSON_CONTENTS" ]; then
&& [ -n "$ACTUAL_OUTPUT" ] \ die "'nvm_get_node_from_pkg_json' POSITIVE test case failed (TEST SET #1). Expected '$EXPECTED_OUTPUT' but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
&& [ -n "$PKG_JSON_CONTENTS" ] \ fi
|| die "'nvm_get_node_from_pkg_json' POSITIVE test case failed (TEST SET #1).
Expected '$EXPECTED_OUTPUT' but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
done done
done done
@ -158,21 +155,21 @@ PREV_TEST_SEMVER=''
for TEMPLATE_NAME in package_json_templates/_invalid_*; do for TEMPLATE_NAME in package_json_templates/_invalid_*; do
while [ -n "$TEST_SEMVERS_COPY" ]; do while [ -n "$TEST_SEMVERS_COPY" ]; do
LINE=$(echo "$TEST_SEMVERS_COPY" | head -n1) LINE=$(echo "$TEST_SEMVERS_COPY" | head -n1)
TEST_SEMVER_INPUT=$(echo "$LINE" | awk -F: '{ print $1 }')
TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2) TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2)
[ -n "$LINE" ] || continue
TEST_SEMVER_INPUT=$(echo "$LINE" | awk -F: '{ print $1 }')
[ "$PREV_TEST_SEMVER" = "$TEST_SEMVER_INPUT" ] \ if [ "$PREV_TEST_SEMVER" == "$TEST_SEMVER_INPUT" ]; then
&& die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #2). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n" die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #2). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n"
fi
PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT") PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT")
PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3) PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3)
ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS") ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS")
[ "$ACTUAL_OUTPUT" = "" ] \ if [ "$ACTUAL_OUTPUT" != "" ] || [ -z "$TEST_SEMVER_INPUT" ] || [ -z "$PKG_JSON_CONTENTS" ]; then
&& [ -n "$TEST_SEMVER_INPUT" ] \ die "'nvm_get_node_from_pkg_json' NEGATIVE test case failed (TEST SET #2). Expected to get empty string but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
&& [ -n "$PKG_JSON_CONTENTS" ] \ fi
|| die "'nvm_get_node_from_pkg_json' NEGATIVE test case failed (TEST SET #2).
Expected to get empty string but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
done done
done done
@ -201,20 +198,20 @@ PREV_TEST_SEMVER=''
for TEMPLATE_NAME in package_json_templates/_valid_*; do for TEMPLATE_NAME in package_json_templates/_valid_*; do
while [ -n "$TEST_SEMVERS_COPY" ]; do while [ -n "$TEST_SEMVERS_COPY" ]; do
TEST_SEMVER_INPUT=$(echo "$TEST_SEMVERS_COPY" | head -n1) TEST_SEMVER_INPUT=$(echo "$TEST_SEMVERS_COPY" | head -n1)
[ -n "$TEST_SEMVER_INPUT" ] || continue
TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2) TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2)
[ "$PREV_TEST_SEMVER" = "$TEST_SEMVER_INPUT" ] \ if [ "$PREV_TEST_SEMVER" == "$TEST_SEMVER_INPUT" ]; then
&& die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #3). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n" die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #3). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n"
fi
PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT") PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT")
PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3) PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3)
ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS") ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS")
[ "$ACTUAL_OUTPUT" = "" ] \ if [ "$ACTUAL_OUTPUT" != "" ] || [ -z "$TEST_SEMVER_INPUT" ] || [ -z "$PKG_JSON_CONTENTS" ]; then
&& [ -n "$TEST_SEMVER_INPUT" ] \ die "'nvm_get_node_from_pkg_json' NEGATIVE test case failed (TEST SET #3). Expected to get empty string but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
&& [ -n "$PKG_JSON_CONTENTS" ] \ fi
|| die "'nvm_get_node_from_pkg_json' NEGATIVE test case failed (TEST SET #3).
Expected to get empty string but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
done done
done done
@ -224,19 +221,19 @@ PREV_TEST_SEMVER=''
for TEMPLATE_NAME in package_json_templates/_invalid_*; do for TEMPLATE_NAME in package_json_templates/_invalid_*; do
while [ -n "$TEST_SEMVERS_COPY" ]; do while [ -n "$TEST_SEMVERS_COPY" ]; do
TEST_SEMVER_INPUT=$(echo "$TEST_SEMVERS_COPY" | head -n1) TEST_SEMVER_INPUT=$(echo "$TEST_SEMVERS_COPY" | head -n1)
[ -n "$TEST_SEMVER_INPUT" ] || continue
TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2) TEST_SEMVERS_COPY=$(echo "$TEST_SEMVERS_COPY" | tail -n +2)
[ "$PREV_TEST_SEMVER" = "$TEST_SEMVER_INPUT" ] \ if [ "$PREV_TEST_SEMVER" == "$TEST_SEMVER_INPUT" ]; then
&& die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #4). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n" die "Problem iterating through TEST_SEMVERS_COPY (TEST SET #4). Encountered the same value twice in a row. PREV_TEST_SEMVER='$PREV_TEST_SEMVER' TEST_SEMVER_INPUT='$TEST_SEMVER_INPUT'.\n"
fi
PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT") PREV_TEST_SEMVER=$(printf "%s" "$TEST_SEMVER_INPUT")
PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3) PKG_JSON_CONTENTS=$(sed 's/NODE_SEMVER/'"$TEST_SEMVER_INPUT"'/g' "$TEMPLATE_NAME" | tail -n +3)
ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS") ACTUAL_OUTPUT=$(nvm_get_node_from_pkg_json "$PKG_JSON_CONTENTS")
[ "$ACTUAL_OUTPUT" = "" ] \ if [ "$ACTUAL_OUTPUT" != "" ] || [ -z "$TEST_SEMVER_INPUT" ] || [ -z "$PKG_JSON_CONTENTS" ]; then
&& [ -n "$TEST_SEMVER_INPUT" ] \ die "'nvm_get_node_from_pkg_json' NEGATIVE test case failed (TEST SET #4). Expected to get empty string but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
&& [ -n "$PKG_JSON_CONTENTS" ] \ fi
|| die "'nvm_get_node_from_pkg_json' NEGATIVE test case failed (TEST SET #4).
Expected to get empty string but got '$ACTUAL_OUTPUT' when given input template '$TEMPLATE_NAME':\n$PKG_JSON_CONTENTS"
done done
done done

View File

@ -30,9 +30,9 @@ while [ -n "$test_cases" ]; do
INPUT=$(echo "$LINE" | awk -F: '{ print $1 }') INPUT=$(echo "$LINE" | awk -F: '{ print $1 }')
EXPECTED_OUTPUT=$(echo "$LINE" | awk -F: '{ print $2 }') EXPECTED_OUTPUT=$(echo "$LINE" | awk -F: '{ print $2 }')
ACTUAL_OUTPUT=$(nvm_interpret_semver "$INPUT") ACTUAL_OUTPUT=$(nvm_interpret_semver "$INPUT")
[ "$ACTUAL_OUTPUT" = "$EXPECTED_OUTPUT" ] \ if [ "$ACTUAL_OUTPUT" != "$EXPECTED_OUTPUT" ] || [ -z "$INPUT" ]; then
&& [ -n "$INPUT" ] \ die "Expected output: '$EXPECTED_OUTPUT'. Actual output: '$ACTUAL_OUTPUT'. Input: '$INPUT'.\n"
|| die "Expected output: '$EXPECTED_OUTPUT'. Actual output: '$ACTUAL_OUTPUT'. Input: '$INPUT'.\n" fi
test_cases=$(echo "$test_cases" | tail -n +2) test_cases=$(echo "$test_cases" | tail -n +2)
done done
exit 0 exit 0

View File

@ -16,10 +16,9 @@ while [ -n "$test_cases" ]; do
LINE=$(echo "$test_cases" | head -n1) LINE=$(echo "$test_cases" | head -n1)
STRING=$(echo "$LINE" | awk -F: '{ print $1 }') STRING=$(echo "$LINE" | awk -F: '{ print $1 }')
REGEXP=$(echo "$LINE" | awk -F: '{ print $2 }') REGEXP=$(echo "$LINE" | awk -F: '{ print $2 }')
[ -n "$REGEXP" ] \ if [ -z "$REGEXP" ] || [ -z "$STRING" ] || ! nvm_string_contains_regexp "$STRING" "$REGEXP"; then
&& [ -n "$STRING" ] \ die "nvm_string_contains_regexp POSITIVE test case failed. REGEXP: '$REGEXP'. STRING: '$STRING'.\n"
&& nvm_string_contains_regexp "$STRING" "$REGEXP" \ fi
|| die "nvm_string_contains_regexp POSITIVE test case failed. REGEXP: '$REGEXP'. STRING: '$STRING'.\n"
test_cases=$(echo "$test_cases" | tail -n +2) test_cases=$(echo "$test_cases" | tail -n +2)
done done
@ -34,9 +33,9 @@ while [ -n "$test_cases" ]; do
LINE=$(echo "$test_cases" | head -n1) LINE=$(echo "$test_cases" | head -n1)
STRING=$(echo "$LINE" | awk -F: '{ print $1 }') STRING=$(echo "$LINE" | awk -F: '{ print $1 }')
REGEXP=$(echo "$LINE" | awk -F: '{ print $2 }') REGEXP=$(echo "$LINE" | awk -F: '{ print $2 }')
[ -n "$REGEXP" ] \ if [ -z "$REGEXP" ] || nvm_string_contains_regexp "$STRING" "$REGEXP"; then
&& ! nvm_string_contains_regexp "$STRING" "$REGEXP" \ die "nvm_string_contains_regexp NEGATIVE test case failed. REGEXP: '$REGEXP'. STRING: '$STRING'.\n"
|| die "nvm_string_contains_regexp NEGATIVE test case failed. REGEXP: '$REGEXP'. STRING: '$STRING'.\n" fi
test_cases=$(echo "$test_cases" | tail -n +2) test_cases=$(echo "$test_cases" | tail -n +2)
done done
exit 0 exit 0

View File

@ -5,7 +5,6 @@ die () { printf "$@" ; exit 1; }
\. ../../../nvm.sh \. ../../../nvm.sh
# INPUT:EXPECTED_OUTPUT # INPUT:EXPECTED_OUTPUT
# TODO refactor test cases into clearer structure
test_cases="1.2.3:1.2.3 test_cases="1.2.3:1.2.3
1.2.3 - 1.2.4:>=1.2.3 <=1.2.4 1.2.3 - 1.2.4:>=1.2.3 <=1.2.4
1.2.3-1.2.4:>=1.2.3 <=1.2.4 1.2.3-1.2.4:>=1.2.3 <=1.2.4
@ -46,9 +45,9 @@ while [ -n "$test_cases" ]; do
INPUT=$(echo "$LINE" | awk -F: '{ print $1 }') INPUT=$(echo "$LINE" | awk -F: '{ print $1 }')
EXPECTED_OUTPUT=$(echo "$LINE" | awk -F: '{ print $2 }') EXPECTED_OUTPUT=$(echo "$LINE" | awk -F: '{ print $2 }')
ACTUAL_OUTPUT=$(nvm_validate_semver "$INPUT") ACTUAL_OUTPUT=$(nvm_validate_semver "$INPUT")
[ "$ACTUAL_OUTPUT" = "$EXPECTED_OUTPUT" ] \ if [ -z "$INPUT" ] || [ "$ACTUAL_OUTPUT" != "$EXPECTED_OUTPUT" ]; then
&& [ -n "$INPUT" ] \ die "nvm_validate_semver test case failed. Expected output: '$EXPECTED_OUTPUT'. Actual output: '$ACTUAL_OUTPUT'. Input: '$INPUT'.\n"
|| die "Expected output: '$EXPECTED_OUTPUT'. Actual output: '$ACTUAL_OUTPUT'. Input: '$INPUT'.\n" fi
test_cases=$(echo "$test_cases" | tail -n +2) test_cases=$(echo "$test_cases" | tail -n +2)
done done
exit 0 exit 0