File tree Expand file tree Collapse file tree 3 files changed +45
-9
lines changed Expand file tree Collapse file tree 3 files changed +45
-9
lines changed Original file line number Diff line number Diff line change @@ -23,10 +23,12 @@ package_json_has_precedence() {
2323}
2424
2525find_package_json_path () {
26- root=" $1 "
26+ local package_json root=" $1 "
2727 while [ -n " $root " ]; do
28- if [ -e " ${root} /package.json" ]; then
29- echo " ${root} /package.json"
28+ package_json=" $root /package.json"
29+
30+ if [ -r " $package_json " ] && [ -f " $package_json " ]; then
31+ echo " $package_json "
3032 return
3133 fi
3234 root=" ${root%/* } "
Original file line number Diff line number Diff line change @@ -56,8 +56,35 @@ load test_helper
5656 assert_success " 5.0.0 (set by NODENV_VERSION environment variable)"
5757}
5858
59- @test ' Does not match babel preset env settings' {
60- cd_into_babel_env_package
59+ @test ' Does not match arbitrary "node" key in package.json' {
60+ in_package_with_babel_env
61+
62+ run nodenv version-name
63+
64+ assert_success ' system'
65+ }
66+
67+ @test ' Handles missing package.json' {
68+ in_example_package
69+
70+ run nodenv version-name
71+
72+ assert_success ' system'
73+ }
74+
75+ @test ' Does not fail with unreadable package.json' {
76+ in_example_package
77+ touch package.json
78+ chmod -r package.json
79+
80+ run nodenv version-name
81+
82+ assert_success ' system'
83+ }
84+
85+ @test ' Does not fail with non-file package.json' {
86+ in_example_package
87+ mkdir package.json
6188
6289 run nodenv version-name
6390
Original file line number Diff line number Diff line change @@ -14,16 +14,23 @@ setup() {
1414 export PATH=" $node_modules_bin :/usr/bin:/bin:/usr/sbin:/sbin"
1515
1616 export NODENV_ROOT=" $BATS_TEST_DIRNAME /fixtures/nodenv_root"
17+
18+
19+ cd " $EXAMPLE_PACKAGE_DIR " || return 1
1720}
1821
1922teardown () {
2023 rm -f " $EXAMPLE_PACKAGE_DIR " /.node-version
21- rm -f " $EXAMPLE_PACKAGE_DIR " /package.json
24+ rm -rf " $EXAMPLE_PACKAGE_DIR " /package.json
2225 rm -f " $NODENV_ROOT /version"
2326}
2427
25- in_package_for_engine () {
28+ in_example_package () {
2629 cd " $EXAMPLE_PACKAGE_DIR " || return 1
30+ }
31+
32+ in_package_for_engine () {
33+ in_example_package
2734 cat << JSON > package.json
2835{
2936 "engines": {
@@ -33,8 +40,8 @@ in_package_for_engine() {
3340JSON
3441}
3542
36- cd_into_babel_env_package () {
37- cd " $EXAMPLE_PACKAGE_DIR " || return 1
43+ in_package_with_babel_env () {
44+ in_example_package
3845 cat << JSON > package.json
3946{
4047 "presets": [
You can’t perform that action at this time.
0 commit comments