mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-04-03 19:44:52 +08:00
Add `try` and `try_err` helper functions to `test/common.sh` that capture stdout/stderr and exit code from a single invocation, eliminating duplicate command executions in tests. Convert all existing tests that used the `OUTPUT`/`EXIT_CODE` double-invocation pattern to use the new helpers. Also fixes a pre-existing bug in the `nvm_die_on_prefix` test where ASCII apostrophes were used instead of U+2019 to match nvm.sh output.
49 lines
1.0 KiB
Bash
Executable File
49 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
die () { echo "$@" ; exit 1; }
|
|
|
|
: nvm.sh
|
|
\. ../../../nvm.sh
|
|
|
|
\. ../../common.sh
|
|
|
|
expect () {
|
|
INPUT="$1"
|
|
EXPECTED_OUTPUT="$2"
|
|
|
|
OUTPUT="$(nvm_get_minor_version "$INPUT")"
|
|
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT"
|
|
|
|
V_OUTPUT="$(nvm_get_minor_version "v$INPUT")"
|
|
[ "_$V_OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version v$INPUT did not return $EXPECTED_OUTPUT; got $V_OUTPUT"
|
|
}
|
|
|
|
fail_with () {
|
|
INPUT="$1"
|
|
EXPECTED_CODE="$2"
|
|
|
|
try nvm_get_minor_version "$INPUT"
|
|
[ "_$CAPTURED_EXIT_CODE" = "_$EXPECTED_CODE" ] || die "nvm_get_minor_version "$INPUT" did not fail with code "$EXPECTED_CODE"; got $CAPTURED_EXIT_CODE"
|
|
}
|
|
|
|
expect 1 1.0
|
|
expect 1. 1.0
|
|
expect 1.2 1.2
|
|
expect 1.2. 1.2
|
|
expect 1.2.3 1.2
|
|
expect 1.2.3. 1.2
|
|
expect 1.2.3.4 1.2
|
|
|
|
fail_with '' 1
|
|
fail_with '.' 2
|
|
fail_with '..' 2
|
|
fail_with v 2
|
|
fail_with .a 2
|
|
fail_with .1 2
|
|
fail_with v.1 2
|
|
fail_with a.b 2
|
|
fail_with 1.a 2
|
|
fail_with a.1 2
|
|
fail_with v1.a 2
|
|
fail_with va.1 2
|