From 4c010f442e6d30594dfbb7eeb5ad0d596a4cabbf Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Jul 2016 21:21:16 -0700 Subject: [PATCH] [Tests] add tests for auto-creation of LTS aliases on `nvm_ls_remote` --- .gitignore | 1 + .../mocks/nvm_make_alias LTS alias calls.txt | 2 + .../fast/Unit tests/nvm_ls_remote LTS aliases | 50 +++++++++++++++++++ update_test_mocks.sh | 13 +++++ 4 files changed, 66 insertions(+) create mode 100644 test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt create mode 100755 test/fast/Unit tests/nvm_ls_remote LTS aliases diff --git a/.gitignore b/.gitignore index 852b572..b44ec8f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ alias test/bak .urchin.log .urchin_stdout +test/**/test_output node_modules/ npm-debug.log diff --git a/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt new file mode 100644 index 0000000..cb38eec --- /dev/null +++ b/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -0,0 +1,2 @@ +lts/argon|v4.4.7 +lts/*|lts/argon diff --git a/test/fast/Unit tests/nvm_ls_remote LTS aliases b/test/fast/Unit tests/nvm_ls_remote LTS aliases new file mode 100755 index 0000000..1fdde96 --- /dev/null +++ b/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -0,0 +1,50 @@ +#!/bin/sh + +set -ex + +die () { echo $@ ; cleanup ; exit 1; } + +TEST_PATH="$PWD/test_output" +mkdir -p "$TEST_PATH" +CALL_COUNT_PATH="$TEST_PATH/call_count.txt" +: > "$CALL_COUNT_PATH" +ALIAS_ARGS_PATH="$TEST_PATH/nvm_make_alias_args.txt" +: > "$ALIAS_ARGS_PATH" + +cleanup() { + unset -f nvm_download nvm_make_alias + rm -rf "$TEST_PATH" +} + +. ../../../nvm.sh + +set -ex + +MOCKS_DIR="$PWD/mocks" + +# sample output at the time the test was written +TAB_PATH="$MOCKS_DIR/nodejs.org-dist-index.tab" +nvm_download() { + cat "$TAB_PATH" +} + +nvm_make_alias() { + CALL_COUNT="$(cat "$CALL_COUNT_PATH")" + CALL_COUNT="$((CALL_COUNT + 1))" + echo "$CALL_COUNT" > "$CALL_COUNT_PATH" + echo "${1}|${2}" >> "$ALIAS_ARGS_PATH" +} + +nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" + +CALL_COUNT="$(cat "$CALL_COUNT_PATH")" + +EXPECTED_COUNT=2 +[ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT" + +ARGS="$(cat "$ALIAS_ARGS_PATH")" +EXPECTED_ARGS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" +EXPECTED_ARGS="$(cat "$EXPECTED_ARGS_PATH")" +[ "${ARGS}" = "${EXPECTED_ARGS}" ] || die "nvm_make_alias called with >${ARGS}<; expected >${EXPECTED_ARGS}<" + +cleanup diff --git a/update_test_mocks.sh b/update_test_mocks.sh index 312a534..dfa87ac 100755 --- a/update_test_mocks.sh +++ b/update_test_mocks.sh @@ -15,6 +15,11 @@ nvm_is_version_installed() { return 1 } +nvm_make_alias() { + # prevent local alias creation + return 0 +} + nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt" @@ -26,4 +31,12 @@ nvm ls-remote --lts > "$MOCKS_DIR/nvm ls-remote lts.txt" nvm ls-remote node > "$MOCKS_DIR/nvm ls-remote node.txt" nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" +ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" +: > "$ALIAS_PATH" +nvm_make_alias() { + # prevent local alias creation, and store arguments + echo "${1}|${2}" >> "$ALIAS_PATH" +} +nvm ls-remote --lts + echo "done! Don't forget to git commit them."