fe-core-components 9.9.2

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of fe-core-components might be problematic. Click here for more details.

Files changed (323) hide show
  1. package/.dockerignore +16 -0
  2. package/.editorconfig +28 -0
  3. package/.gitattributes +1 -0
  4. package/.github/FUNDING.yml +12 -0
  5. package/.github/ISSUE_TEMPLATE.md +44 -0
  6. package/.github/SECURITY.md +3 -0
  7. package/.github/workflows/latest-npm.yml +76 -0
  8. package/.github/workflows/lint.yml +73 -0
  9. package/.github/workflows/rebase.yml +23 -0
  10. package/.github/workflows/release.yml +32 -0
  11. package/.github/workflows/require-allow-edits.yml +21 -0
  12. package/.github/workflows/shellcheck.yml +55 -0
  13. package/.github/workflows/toc.yml +37 -0
  14. package/.github/workflows/windows-npm.yml +133 -0
  15. package/.mailmap +1 -0
  16. package/.travis.yml +75 -0
  17. package/CODE_OF_CONDUCT.md +106 -0
  18. package/CONTRIBUTING.md +21 -0
  19. package/Dockerfile +111 -0
  20. package/GOVERNANCE.md +10 -0
  21. package/LICENSE.md +22 -0
  22. package/Makefile +85 -0
  23. package/PROJECT_CHARTER.md +49 -0
  24. package/README.md +970 -0
  25. package/ROADMAP.md +9 -0
  26. package/bash_completion +99 -0
  27. package/index.js +48 -0
  28. package/install.sh +463 -0
  29. package/nvm-exec +15 -0
  30. package/nvm.sh +4323 -0
  31. package/package.json +12 -0
  32. package/package.json.ori +51 -0
  33. package/rename_test.sh +52 -0
  34. package/test/common.sh +103 -0
  35. package/test/fast/Aliases/'nvm alias' should not accept aliases with slashes +26 -0
  36. package/test/fast/Aliases/'nvm unalias' should accept aliases when they shadow a built-in alias +17 -0
  37. package/test/fast/Aliases/'nvm unalias' should not accept aliases with names equal to built-in alias +25 -0
  38. package/test/fast/Aliases/'nvm unalias' should not accept aliases with slashes +26 -0
  39. package/test/fast/Aliases/Running 'nvm alias /313/202aliasname/313/203 /313/202target/313/203' again should change the target" +24 -0
  40. package/test/fast/Aliases/Running 'nvm alias /313/202aliasname/313/203' should list but one alias" +4 -0
  41. package/test/fast/Aliases/Running 'nvm alias' lists implicit aliases when they do not exist +26 -0
  42. package/test/fast/Aliases/Running 'nvm alias' lists manual aliases instead of implicit aliases when present +49 -0
  43. package/test/fast/Aliases/Running 'nvm alias' should list all aliases +48 -0
  44. package/test/fast/Aliases/circular/nvm_resolve_alias +36 -0
  45. package/test/fast/Aliases/circular/nvm_resolve_local_alias +36 -0
  46. package/test/fast/Aliases/circular/setup +9 -0
  47. package/test/fast/Aliases/circular/teardown +9 -0
  48. package/test/fast/Aliases/lts/'nvm alias' should ensure LTS alias dir exists +18 -0
  49. package/test/fast/Aliases/lts/setup_dir +10 -0
  50. package/test/fast/Aliases/lts/teardown_dir +10 -0
  51. package/test/fast/Aliases/nvm_ensure_default_set +20 -0
  52. package/test/fast/Aliases/nvm_list_aliases calls nvm_get_colors +22 -0
  53. package/test/fast/Aliases/nvm_list_aliases works with LTS aliases +25 -0
  54. package/test/fast/Aliases/nvm_list_aliases works with no LTS aliases present +21 -0
  55. package/test/fast/Aliases/nvm_print_alias_path calls nvm_get_colors +28 -0
  56. package/test/fast/Aliases/nvm_print_formatted_alias calls nvm_get_colors +21 -0
  57. package/test/fast/Aliases/nvm_resolve_alias +33 -0
  58. package/test/fast/Aliases/nvm_resolve_local_alias +35 -0
  59. package/test/fast/Aliases/setup +14 -0
  60. package/test/fast/Aliases/teardown +17 -0
  61. package/test/fast/Listing paths/Running 'nvm which 0.0.2' should display only version 0.0.2 +27 -0
  62. package/test/fast/Listing paths/Running 'nvm which foo' should return a nonzero exit code when not found +6 -0
  63. package/test/fast/Listing paths/teardown +3 -0
  64. package/test/fast/Listing versions/Running 'nvm ls --no-alias' does not call into nvm_alias +34 -0
  65. package/test/fast/Listing versions/Running 'nvm ls --no-alias' with a pattern errors +15 -0
  66. package/test/fast/Listing versions/Running 'nvm ls 0.0.2' should display only version 0.0.2 +21 -0
  67. package/test/fast/Listing versions/Running 'nvm ls 0.2' should display only 0.2.x versions +42 -0
  68. package/test/fast/Listing versions/Running 'nvm ls foo' should return a nonzero exit code when not found +6 -0
  69. package/test/fast/Listing versions/Running 'nvm ls io' should return NA +6 -0
  70. package/test/fast/Listing versions/Running 'nvm ls node_' should return a nonzero exit code when not found +6 -0
  71. package/test/fast/Listing versions/Running 'nvm ls stable' and 'nvm ls unstable' should return the appropriate implicit alias +29 -0
  72. package/test/fast/Listing versions/Running 'nvm ls system' should include 'system' when appropriate +21 -0
  73. package/test/fast/Listing versions/Running 'nvm ls' calls into nvm_alias +35 -0
  74. package/test/fast/Listing versions/Running 'nvm ls' should display all installed versions +44 -0
  75. package/test/fast/Listing versions/Running 'nvm ls' should filter out '.nvm' +10 -0
  76. package/test/fast/Listing versions/Running 'nvm ls' should filter out 'versions' +10 -0
  77. package/test/fast/Listing versions/Running 'nvm ls' should include 'system' when appropriate +21 -0
  78. package/test/fast/Listing versions/Running 'nvm ls' should list versions in the 'versions' directory +12 -0
  79. package/test/fast/Listing versions/Running 'nvm ls' should not show a trailing slash +40 -0
  80. package/test/fast/Listing versions/Running 'nvm ls' with node-like versioning vx.x.x should only list a matched version +11 -0
  81. package/test/fast/Listing versions/Running 'nvm ls' with nounset should not fail +23 -0
  82. package/test/fast/Listing versions/Using a nonstandard IFS should not break +19 -0
  83. package/test/fast/Listing versions/teardown +16 -0
  84. package/test/fast/Running 'nvm alias' should create a file in the alias directory +9 -0
  85. package/test/fast/Running 'nvm current' should display current nvm environment +11 -0
  86. package/test/fast/Running 'nvm deactivate' should unset the nvm environment variables +23 -0
  87. package/test/fast/Running 'nvm install' with '--reinstall-packages-from' requires a valid version +57 -0
  88. package/test/fast/Running 'nvm install' with an invalid version fails nicely +13 -0
  89. package/test/fast/Running 'nvm unalias' should remove the alias file +13 -0
  90. package/test/fast/Running 'nvm uninstall' should remove the appropriate directory +12 -0
  91. package/test/fast/Running 'nvm uninstall' with incorrect file permissions fails nicely +14 -0
  92. package/test/fast/Running 'nvm unload' should unset all function and variables +30 -0
  93. package/test/fast/Running 'nvm use foo' where 'foo' is circular aborts +39 -0
  94. package/test/fast/Running 'nvm use iojs' uses latest io.js version +37 -0
  95. package/test/fast/Running 'nvm use system' should work as expected +44 -0
  96. package/test/fast/Running 'nvm use x' should create and change the 'current' symlink +36 -0
  97. package/test/fast/Running 'nvm use x' should not create the 'current' symlink if $NVM_SYMLINK_CURRENT is false +86 -0
  98. package/test/fast/Running 'nvm use' should drop CR char automatically +33 -0
  99. package/test/fast/Set Colors/nvm_echo_with_colors +21 -0
  100. package/test/fast/Set Colors/nvm_err_with_colors +19 -0
  101. package/test/fast/Set Colors/nvm_print_default_alias calls nvm_get_colors +24 -0
  102. package/test/fast/Set Colors/nvm_print_versions calls nvm_get_colors +52 -0
  103. package/test/fast/Sourcing nvm.sh should make the nvm command available +7 -0
  104. package/test/fast/Sourcing nvm.sh should not modify parameters of caller +7 -0
  105. package/test/fast/Unit tests/mocks/LTS_names.txt +7 -0
  106. package/test/fast/Unit tests/mocks/iojs.org-dist-index.tab +42 -0
  107. package/test/fast/Unit tests/mocks/lts-star.txt +1 -0
  108. package/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab +614 -0
  109. package/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab +2576 -0
  110. package/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt +41 -0
  111. package/test/fast/Unit tests/mocks/nvm ls-remote lts.txt +166 -0
  112. package/test/fast/Unit tests/mocks/nvm ls-remote node.txt +613 -0
  113. package/test/fast/Unit tests/mocks/nvm ls-remote.txt +654 -0
  114. package/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt +36 -0
  115. package/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt +1 -0
  116. package/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt +25 -0
  117. package/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt +166 -0
  118. package/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt +146 -0
  119. package/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt +1 -0
  120. package/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt +1 -0
  121. package/test/fast/Unit tests/mocks/nvm_ls_remote.txt +613 -0
  122. package/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt +41 -0
  123. package/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt +8 -0
  124. package/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt +1 -0
  125. package/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt +1 -0
  126. package/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested/node_modules/foo/bar/.gitkeep +0 -0
  127. package/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/bar/.gitkeep +0 -0
  128. package/test/fast/Unit tests/mocks/project_dirs/inside-n_m-nested-pkg/node_modules/foo/package.json +0 -0
  129. package/test/fast/Unit tests/mocks/project_dirs/nested-both/a/b/c/d/.gitkeep +0 -0
  130. package/test/fast/Unit tests/mocks/project_dirs/nested-both/node_modules/.gitkeep +0 -0
  131. package/test/fast/Unit tests/mocks/project_dirs/nested-both/package.json +0 -0
  132. package/test/fast/Unit tests/mocks/project_dirs/nested-n_m/a/b/c/d/.gitkeep +0 -0
  133. package/test/fast/Unit tests/mocks/project_dirs/nested-n_m/node_modules/.gitkeep +0 -0
  134. package/test/fast/Unit tests/mocks/project_dirs/nested-pkg/a/b/c/d/.gitkeep +0 -0
  135. package/test/fast/Unit tests/mocks/project_dirs/nested-pkg/package.json +0 -0
  136. package/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/node_modules/.gitkeep +0 -0
  137. package/test/fast/Unit tests/mocks/project_dirs/no-nesting-both/package.json +0 -0
  138. package/test/fast/Unit tests/mocks/project_dirs/no-nesting-n_m/node_modules/.gitkeep +0 -0
  139. package/test/fast/Unit tests/mocks/project_dirs/no-nesting-pkg/package.json +0 -0
  140. package/test/fast/Unit tests/nvm ls-remote +73 -0
  141. package/test/fast/Unit tests/nvm set_colors +52 -0
  142. package/test/fast/Unit tests/nvm version-remote +51 -0
  143. package/test/fast/Unit tests/nvm_add_iojs_prefix +9 -0
  144. package/test/fast/Unit tests/nvm_alias +32 -0
  145. package/test/fast/Unit tests/nvm_alias LTS-N +36 -0
  146. package/test/fast/Unit tests/nvm_alias_path +7 -0
  147. package/test/fast/Unit tests/nvm_change_path +57 -0
  148. package/test/fast/Unit tests/nvm_check_for_help +9 -0
  149. package/test/fast/Unit tests/nvm_clang_version +62 -0
  150. package/test/fast/Unit tests/nvm_command_info +58 -0
  151. package/test/fast/Unit tests/nvm_compare_checksum +72 -0
  152. package/test/fast/Unit tests/nvm_compute_checksum +23 -0
  153. package/test/fast/Unit tests/nvm_curl_libz_support +39 -0
  154. package/test/fast/Unit tests/nvm_curl_use_compression +38 -0
  155. package/test/fast/Unit tests/nvm_curl_version +32 -0
  156. package/test/fast/Unit tests/nvm_die_on_prefix +192 -0
  157. package/test/fast/Unit tests/nvm_download +18 -0
  158. package/test/fast/Unit tests/nvm_ensure_default_set +15 -0
  159. package/test/fast/Unit tests/nvm_ensure_version_installed +63 -0
  160. package/test/fast/Unit tests/nvm_ensure_version_prefix +12 -0
  161. package/test/fast/Unit tests/nvm_find_project_dir +33 -0
  162. package/test/fast/Unit tests/nvm_find_up +25 -0
  163. package/test/fast/Unit tests/nvm_format_version +20 -0
  164. package/test/fast/Unit tests/nvm_get_arch +84 -0
  165. package/test/fast/Unit tests/nvm_get_artifact_compression +22 -0
  166. package/test/fast/Unit tests/nvm_get_checksum +45 -0
  167. package/test/fast/Unit tests/nvm_get_checksum_alg +20 -0
  168. package/test/fast/Unit tests/nvm_get_checksum_binary +20 -0
  169. package/test/fast/Unit tests/nvm_get_colors +79 -0
  170. package/test/fast/Unit tests/nvm_get_default_packages +92 -0
  171. package/test/fast/Unit tests/nvm_get_download_slug +111 -0
  172. package/test/fast/Unit tests/nvm_get_latest missing curl or wget +20 -0
  173. package/test/fast/Unit tests/nvm_get_minor_version +45 -0
  174. package/test/fast/Unit tests/nvm_get_mirror +32 -0
  175. package/test/fast/Unit tests/nvm_has +11 -0
  176. package/test/fast/Unit tests/nvm_has_non_aliased +24 -0
  177. package/test/fast/Unit tests/nvm_has_solaris_binary +32 -0
  178. package/test/fast/Unit tests/nvm_has_system_iojs +27 -0
  179. package/test/fast/Unit tests/nvm_has_system_node +27 -0
  180. package/test/fast/Unit tests/nvm_install_binary_extract +59 -0
  181. package/test/fast/Unit tests/nvm_install_binary_nosource +30 -0
  182. package/test/fast/Unit tests/nvm_install_latest_npm +58 -0
  183. package/test/fast/Unit tests/nvm_install_no_progress_bar +43 -0
  184. package/test/fast/Unit tests/nvm_iojs_prefix +7 -0
  185. package/test/fast/Unit tests/nvm_iojs_version_has_solaris_binary +17 -0
  186. package/test/fast/Unit tests/nvm_is_alias +20 -0
  187. package/test/fast/Unit tests/nvm_is_iojs_version +10 -0
  188. package/test/fast/Unit tests/nvm_is_merged_node_version +10 -0
  189. package/test/fast/Unit tests/nvm_is_natural_num +17 -0
  190. package/test/fast/Unit tests/nvm_is_valid_version +13 -0
  191. package/test/fast/Unit tests/nvm_is_version_installed +54 -0
  192. package/test/fast/Unit tests/nvm_ls_current +39 -0
  193. package/test/fast/Unit tests/nvm_ls_remote +86 -0
  194. package/test/fast/Unit tests/nvm_ls_remote LTS aliases +49 -0
  195. package/test/fast/Unit tests/nvm_ls_remote nightly +65 -0
  196. package/test/fast/Unit tests/nvm_ls_remote_iojs +37 -0
  197. package/test/fast/Unit tests/nvm_make_alias +19 -0
  198. package/test/fast/Unit tests/nvm_node_prefix +7 -0
  199. package/test/fast/Unit tests/nvm_node_version_has_solaris_binary +33 -0
  200. package/test/fast/Unit tests/nvm_normalize_lts +38 -0
  201. package/test/fast/Unit tests/nvm_num_version_groups +24 -0
  202. package/test/fast/Unit tests/nvm_print_alias_path +44 -0
  203. package/test/fast/Unit tests/nvm_print_color_code +20 -0
  204. package/test/fast/Unit tests/nvm_print_default_alias +38 -0
  205. package/test/fast/Unit tests/nvm_print_implicit_alias errors +25 -0
  206. package/test/fast/Unit tests/nvm_print_implicit_alias success +106 -0
  207. package/test/fast/Unit tests/nvm_print_npm_version +28 -0
  208. package/test/fast/Unit tests/nvm_remote_version +78 -0
  209. package/test/fast/Unit tests/nvm_remote_versions +77 -0
  210. package/test/fast/Unit tests/nvm_stdout_is_terminal +32 -0
  211. package/test/fast/Unit tests/nvm_strip_iojs_prefix +10 -0
  212. package/test/fast/Unit tests/nvm_strip_path +18 -0
  213. package/test/fast/Unit tests/nvm_supports_xz +42 -0
  214. package/test/fast/Unit tests/nvm_tree_contains_path +31 -0
  215. package/test/fast/Unit tests/nvm_use_if_needed +24 -0
  216. package/test/fast/Unit tests/nvm_validate_implicit_alias +20 -0
  217. package/test/fast/Unit tests/nvm_version +48 -0
  218. package/test/fast/Unit tests/nvm_version_dir +11 -0
  219. package/test/fast/Unit tests/nvm_version_greater +15 -0
  220. package/test/fast/Unit tests/nvm_version_path +14 -0
  221. package/test/fast/nvm should remove the last trailing slash in $NVM_DIR +18 -0
  222. package/test/fast/setup +14 -0
  223. package/test/fast/setup_dir +18 -0
  224. package/test/fast/teardown +12 -0
  225. package/test/fast/teardown_dir +15 -0
  226. package/test/install_script/install_nvm_from_git +129 -0
  227. package/test/install_script/nvm_check_global_modules +63 -0
  228. package/test/install_script/nvm_detect_profile +118 -0
  229. package/test/install_script/nvm_do_install +8 -0
  230. package/test/install_script/nvm_download +18 -0
  231. package/test/install_script/nvm_install_dir +25 -0
  232. package/test/install_script/nvm_install_with_aliased_dot +24 -0
  233. package/test/install_script/nvm_install_with_node_version +12 -0
  234. package/test/install_script/nvm_profile_is_bash_or_zsh +13 -0
  235. package/test/install_script/nvm_reset +38 -0
  236. package/test/install_script/nvm_source +43 -0
  237. package/test/installation_iojs/install already installed uses it +25 -0
  238. package/test/installation_iojs/install from binary +22 -0
  239. package/test/installation_iojs/install from source +22 -0
  240. package/test/installation_iojs/install two versions and use the latest one +25 -0
  241. package/test/installation_iojs/install version specified in .nvmrc from binary +22 -0
  242. package/test/installation_iojs/install version specified in .nvmrc from source +23 -0
  243. package/test/installation_iojs/install while reinstalling packages +31 -0
  244. package/test/installation_iojs/nvm install v1 works +19 -0
  245. package/test/installation_iojs/setup_dir +5 -0
  246. package/test/installation_iojs/teardown_dir +16 -0
  247. package/test/installation_node/default-packages +123 -0
  248. package/test/installation_node/install LTS +29 -0
  249. package/test/installation_node/install already installed uses it +23 -0
  250. package/test/installation_node/install from binary +23 -0
  251. package/test/installation_node/install from binary with binary flag set +37 -0
  252. package/test/installation_node/install from source +29 -0
  253. package/test/installation_node/install from source implicitly +23 -0
  254. package/test/installation_node/install from source with thread parameter +33 -0
  255. package/test/installation_node/install from source without V8 snapshot for ARM +25 -0
  256. package/test/installation_node/install hook +45 -0
  257. package/test/installation_node/install latest npm +51 -0
  258. package/test/installation_node/install two versions and use the latest one +24 -0
  259. package/test/installation_node/install version specified in .nvmrc from binary +20 -0
  260. package/test/installation_node/install version specified in .nvmrc from source +20 -0
  261. package/test/installation_node/install while reinstalling packages +46 -0
  262. package/test/installation_node/install with --alias +11 -0
  263. package/test/installation_node/install with --default +11 -0
  264. package/test/installation_node/install with --latest-npm +12 -0
  265. package/test/installation_node/setup_dir +5 -0
  266. package/test/installation_node/teardown_dir +18 -0
  267. package/test/mocks/isainfo_amd64 +5 -0
  268. package/test/mocks/isainfo_x86 +5 -0
  269. package/test/mocks/pkg_info_amd64 +4 -0
  270. package/test/mocks/pkg_info_fail +1 -0
  271. package/test/mocks/pkg_info_x86 +1 -0
  272. package/test/mocks/uname_osx_amd64 +5 -0
  273. package/test/mocks/uname_osx_x86 +5 -0
  274. package/test/mocks/uname_smartos_amd64 +5 -0
  275. package/test/mocks/uname_smartos_x86 +5 -0
  276. package/test/slow/Running 'nvm current' should display current nvm environment +9 -0
  277. package/test/slow/node 0.6.21 should install 0.6.21-pre +11 -0
  278. package/test/slow/nvm exec/Preamble works and respects 'silent' flag +30 -0
  279. package/test/slow/nvm exec/Running 'nvm exec --lts' should work +18 -0
  280. package/test/slow/nvm exec/Running 'nvm exec 0.x' should work +15 -0
  281. package/test/slow/nvm exec/Running 'nvm exec' should pick up .nvmrc version +16 -0
  282. package/test/slow/nvm exec/Running 'nvm exec' with help should not parse +9 -0
  283. package/test/slow/nvm exec/setup_dir +10 -0
  284. package/test/slow/nvm exec/teardown_dir +13 -0
  285. package/test/slow/nvm reinstall-packages/Running 'nvm copy-packages $(nvm ls current)' should error out +17 -0
  286. package/test/slow/nvm reinstall-packages/setup_dir +11 -0
  287. package/test/slow/nvm reinstall-packages/should work as expected +31 -0
  288. package/test/slow/nvm reinstall-packages/teardown_dir +13 -0
  289. package/test/slow/nvm reinstall-packages/test-npmlink/index.js +2 -0
  290. package/test/slow/nvm reinstall-packages/test-npmlink/package.json +10 -0
  291. package/test/slow/nvm reinstall-packages/works with no installs +18 -0
  292. package/test/slow/nvm run/Running 'nvm run --harmony --version' should work +8 -0
  293. package/test/slow/nvm run/Running 'nvm run --lts' should work +15 -0
  294. package/test/slow/nvm run/Running 'nvm run 0.x' should error out sensibly when 0.x is not installed +16 -0
  295. package/test/slow/nvm run/Running 'nvm run 0.x' should work +8 -0
  296. package/test/slow/nvm run/Running 'nvm run' should pick up .nvmrc version +12 -0
  297. package/test/slow/nvm run/setup_dir +11 -0
  298. package/test/slow/nvm run/teardown_dir +14 -0
  299. package/test/slow/nvm uninstall/Running 'nvm uninstall 0.12.6' uninstalls v0.12.6 +33 -0
  300. package/test/slow/nvm uninstall/Running 'nvm uninstall' with incorrect file permissions fails nicely +30 -0
  301. package/test/slow/nvm uninstall/setup_dir +4 -0
  302. package/test/slow/nvm uninstall/teardown_dir +5 -0
  303. package/test/slow/nvm use/Running 'nvm use --lts' uses latest LTS version +22 -0
  304. package/test/slow/nvm use/Running 'nvm use --lts=foo' uses latest 'foo' LTS version +22 -0
  305. package/test/slow/nvm use/Running 'nvm use iojs' uses latest io.js version +20 -0
  306. package/test/slow/nvm use/Running 'nvm use node --silent' doesn't print anything +13 -0
  307. package/test/slow/nvm use/Running 'nvm use node' uses latest stable node version +20 -0
  308. package/test/slow/nvm use/Running 'nvm use v1.0.0' uses iojs-v1.0.0 iojs version +20 -0
  309. package/test/slow/nvm use/Running 'nvm use' calls 'nvm_die_on_prefix' +22 -0
  310. package/test/slow/nvm use/setup_dir +23 -0
  311. package/test/slow/nvm use/teardown_dir +22 -0
  312. package/test/slow/nvm_get_latest/nvm_get_latest +101 -0
  313. package/test/slow/nvm_get_latest/nvm_get_latest failed redirect +25 -0
  314. package/test/sourcing/Sourcing nvm.sh global alias bug +30 -0
  315. package/test/sourcing/Sourcing nvm.sh should keep version if one is active +20 -0
  316. package/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded +28 -0
  317. package/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it +27 -0
  318. package/test/sourcing/Sourcing nvm.sh with --install should install the default +32 -0
  319. package/test/sourcing/Sourcing nvm.sh with --no-use should not use anything +31 -0
  320. package/test/sourcing/Sourcing nvm.sh with no default should return 0 +11 -0
  321. package/test/sourcing/setup +14 -0
  322. package/test/sourcing/teardown +7 -0
  323. package/update_test_mocks.sh +59 -0
@@ -0,0 +1,92 @@
1
+ #!/bin/sh
2
+
3
+ \. ../../../nvm.sh
4
+
5
+ FILE="$NVM_DIR/default-packages"
6
+
7
+ die () { echo "$@" ; cleanup ; exit 1; }
8
+ setup () {
9
+ if [ -f $FILE ]; then
10
+ ORIG_DEFAULT_PACKAGES=$(cat $FILE)
11
+ mkdir -p ./tmp/ ||:
12
+ mv $FILE ./tmp/default-packages ||:
13
+ fi
14
+ touch $FILE
15
+ }
16
+ cleanup () {
17
+ if [ "$ORIG_DEFAULT_PACKAGES" != "" ]; then
18
+ rm -rf ./tmp/
19
+ echo "$ORIG_DEFAULT_PACKAGES" > $FILE
20
+ fi
21
+ }
22
+
23
+ setup
24
+
25
+ cat > $FILE << EOF
26
+ rimraf
27
+ object-inspect@1.0.2
28
+
29
+ # commented-package
30
+
31
+ stevemao/left-pad
32
+ EOF
33
+
34
+ DEFAULT_PKGS="$(nvm_get_default_packages)"
35
+ EXPECTED_PKGS='rimraf object-inspect@1.0.2 stevemao/left-pad'
36
+ [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "1: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
37
+
38
+ cleanup
39
+
40
+ setup
41
+
42
+ cat > $FILE << EOF
43
+ rimraf
44
+ not~a~package~name
45
+ mkdirp
46
+ EOF
47
+
48
+ DEFAULT_PKGS="$(nvm_get_default_packages)"
49
+ EXPECTED_PKGS='rimraf not~a~package~name mkdirp'
50
+ [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "2: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
51
+
52
+ cleanup
53
+
54
+ setup
55
+
56
+ cat > $FILE << EOF
57
+ rimraf
58
+ not~a~package~name
59
+ mkdirp
60
+ EOF
61
+ printf %s "$(cat "${FILE}")" > $FILE # strip trailing newline
62
+
63
+ DEFAULT_PKGS="$(nvm_get_default_packages)"
64
+ EXPECTED_PKGS='rimraf not~a~package~name mkdirp'
65
+ [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "3: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
66
+
67
+ cleanup
68
+
69
+ setup
70
+
71
+ cat > $FILE << EOF
72
+ object-inspect @ 1.0.2
73
+ rimraf
74
+ EOF
75
+
76
+ DEFAULT_PKGS="$(nvm_get_default_packages 2>&1 >/dev/null)"
77
+ EXPECTED_PKGS="Only one package per line is allowed in the $FILE file. Please remove any lines with multiple space-separated values."
78
+ [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "4: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
79
+
80
+ cleanup
81
+
82
+ setup
83
+
84
+ rm -rf $FILE
85
+
86
+ DEFAULT_PKGS="$(nvm_get_default_packages)"
87
+ EXPECTED_PKGS=''
88
+ [ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "5: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<"
89
+
90
+ touch $FILE
91
+
92
+ cleanup
@@ -0,0 +1,111 @@
1
+ #!/bin/sh
2
+
3
+ cleanup() {
4
+ unset nvm_get_os
5
+ unset nvm_get_arch
6
+ }
7
+
8
+ die () { cleanup; echo "$@" ; exit 1; }
9
+
10
+ \. ../../../nvm.sh
11
+
12
+ [ "$(nvm_get_download_slug 2>/dev/null ; echo $?)" = '1' ] || die 'invalid flavor did not fail with exit code 1'
13
+ [ "$(nvm_get_download_slug 2>&1)" = 'supported flavors: node, iojs' ] || die 'invalid flavor did not fail with expected message'
14
+
15
+ [ "$(nvm_get_download_slug node 2>/dev/null ; echo $?)" = '2' ] || die 'invalid kind did not fail with exit code 2'
16
+ [ "$(nvm_get_download_slug node 2>&1)" = 'supported kinds: binary, source' ] || die 'invalid kind did not fail with expected message'
17
+ [ "$(nvm_get_download_slug iojs 2>/dev/null ; echo $?)" = '2' ] || die 'invalid kind did not fail with exit code 2'
18
+ [ "$(nvm_get_download_slug iojs 2>&1)" = 'supported kinds: binary, source' ] || die 'invalid kind did not fail with expected message'
19
+
20
+ nvm_get_os() {
21
+ echo omgOS
22
+ }
23
+ nvm_get_arch() {
24
+ echo nemesis
25
+ }
26
+
27
+ ACTUAL="$(nvm_get_download_slug node binary 1.2.3)"
28
+ EXPECTED='node-1.2.3-omgOS-nemesis'
29
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
30
+ ACTUAL="$(nvm_get_download_slug iojs binary 1.2.3)"
31
+ EXPECTED='iojs-1.2.3-omgOS-nemesis'
32
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
33
+
34
+ ACTUAL="$(nvm_get_download_slug node source 1.2.3)"
35
+ EXPECTED="node-1.2.3"
36
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
37
+ ACTUAL="$(nvm_get_download_slug iojs source 1.2.3)"
38
+ EXPECTED="iojs-1.2.3"
39
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
40
+
41
+ nvm_get_arch() {
42
+ echo armv6l
43
+ }
44
+ ACTUAL="$(nvm_get_download_slug node binary 1.2.3)"
45
+ EXPECTED='node-1.2.3-omgOS-arm-pi'
46
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
47
+ ACTUAL="$(nvm_get_download_slug iojs binary 1.2.3)"
48
+ EXPECTED='iojs-1.2.3-omgOS-arm-pi'
49
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
50
+
51
+ ACTUAL="$(nvm_get_download_slug node source 1.2.3)"
52
+ EXPECTED="node-1.2.3"
53
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
54
+ ACTUAL="$(nvm_get_download_slug iojs source 1.2.3)"
55
+ EXPECTED="iojs-1.2.3"
56
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
57
+
58
+ nvm_get_arch() {
59
+ echo armv7l
60
+ }
61
+ ACTUAL="$(nvm_get_download_slug node binary 1.2.3)"
62
+ EXPECTED='node-1.2.3-omgOS-arm-pi'
63
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
64
+ ACTUAL="$(nvm_get_download_slug iojs binary 1.2.3)"
65
+ EXPECTED='iojs-1.2.3-omgOS-arm-pi'
66
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
67
+
68
+ ACTUAL="$(nvm_get_download_slug node source 1.2.3)"
69
+ EXPECTED="node-1.2.3"
70
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
71
+ ACTUAL="$(nvm_get_download_slug iojs source 1.2.3)"
72
+ EXPECTED="iojs-1.2.3"
73
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
74
+
75
+ nvm_get_os() {
76
+ echo darwin
77
+ }
78
+ nvm_get_arch() {
79
+ echo nemesis
80
+ }
81
+ ACTUAL="$(nvm_get_download_slug node binary 15.99.99)"
82
+ EXPECTED='node-15.99.99-darwin-nemesis'
83
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
84
+ ACTUAL="$(nvm_get_download_slug iojs binary 15.99.99)"
85
+ EXPECTED='iojs-15.99.99-darwin-nemesis'
86
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
87
+
88
+ ACTUAL="$(nvm_get_download_slug node source 15.99.99)"
89
+ EXPECTED="node-15.99.99"
90
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
91
+ ACTUAL="$(nvm_get_download_slug iojs source 15.99.99)"
92
+ EXPECTED="iojs-15.99.99"
93
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
94
+
95
+ nvm_get_arch() {
96
+ echo arm64
97
+ }
98
+ ACTUAL="$(nvm_get_download_slug node binary 15.99.99)"
99
+ EXPECTED='node-15.99.99-darwin-x64'
100
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
101
+ ACTUAL="$(nvm_get_download_slug iojs binary 15.99.99)"
102
+ EXPECTED='iojs-15.99.99-darwin-x64'
103
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
104
+
105
+ ACTUAL="$(nvm_get_download_slug node source 15.99.99)"
106
+ EXPECTED="node-15.99.99"
107
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
108
+ ACTUAL="$(nvm_get_download_slug iojs source 15.99.99)"
109
+ EXPECTED="iojs-15.99.99"
110
+ [ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
111
+
@@ -0,0 +1,20 @@
1
+ #!/bin/sh
2
+
3
+ die () { echo "$@" ; cleanup ; exit 1; }
4
+
5
+ cleanup() {
6
+ unset -f nvm_has
7
+ }
8
+
9
+ \. ../../../nvm.sh
10
+
11
+ nvm_has() { return 1 ; }
12
+
13
+ OUTPUT="$(nvm_get_latest 2>&1)"
14
+ EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)"
15
+ [ "_$OUTPUT" = "_nvm needs curl or wget to proceed." ] \
16
+ || die "no curl/wget did not report correct error message, got '$OUTPUT'"
17
+ [ "_$EXIT_CODE" = "_1" ] \
18
+ || die "no curl/wget did not exit with code 1, got $EXIT_CODE"
19
+
20
+ cleanup
@@ -0,0 +1,45 @@
1
+ #!/bin/sh
2
+
3
+ die () { echo "$@" ; exit 1; }
4
+
5
+ \. ../../../nvm.sh
6
+
7
+ expect () {
8
+ INPUT="$1"
9
+ EXPECTED_OUTPUT="$2"
10
+
11
+ OUTPUT="$(nvm_get_minor_version "$INPUT")"
12
+ [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT"
13
+
14
+ V_OUTPUT="$(nvm_get_minor_version "v$INPUT")"
15
+ [ "_$V_OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version v$INPUT did not return $EXPECTED_OUTPUT; got $V_OUTPUT"
16
+ }
17
+
18
+ fail_with () {
19
+ INPUT="$1"
20
+ EXPECTED_CODE="$2"
21
+
22
+ EXIT_CODE="$(nvm_get_minor_version "$INPUT" >/dev/null 2>&1; echo $?)"
23
+ [ "_$EXIT_CODE" = "_$EXPECTED_CODE" ] || die "nvm_get_minor_version "$INPUT" did not fail with code "$EXPECTED_CODE"; got $EXIT_CODE"
24
+ }
25
+
26
+ expect 1 1.0
27
+ expect 1. 1.0
28
+ expect 1.2 1.2
29
+ expect 1.2. 1.2
30
+ expect 1.2.3 1.2
31
+ expect 1.2.3. 1.2
32
+ expect 1.2.3.4 1.2
33
+
34
+ fail_with '' 1
35
+ fail_with '.' 2
36
+ fail_with '..' 2
37
+ fail_with v 2
38
+ fail_with .a 2
39
+ fail_with .1 2
40
+ fail_with v.1 2
41
+ fail_with a.b 2
42
+ fail_with 1.a 2
43
+ fail_with a.1 2
44
+ fail_with v1.a 2
45
+ fail_with va.1 2
@@ -0,0 +1,32 @@
1
+ #!/bin/sh
2
+
3
+ set -ex
4
+
5
+ die () { echo "$@" ; exit 1; }
6
+
7
+ unset NVM_NODEJS_ORG_MIRROR
8
+ unset NVM_IOJS_ORG_MIRROR
9
+
10
+ set +e # TODO: fix
11
+ \. ../../../nvm.sh
12
+ set -e
13
+
14
+ ! nvm_get_mirror || die 'unknown release type did not error'
15
+ ! nvm_get_mirror node || die 'unknown release type did not error'
16
+ ! nvm_get_mirror iojs || die 'unknown release type did not error'
17
+ ! nvm_get_mirror node foo || die 'unknown release type did not error'
18
+ ! nvm_get_mirror iojs foo || die 'unknown release type did not error'
19
+
20
+ [ -z "$NVM_NODEJS_ORG_MIRROR" ] || die "MIRROR environment variables should not be exported"
21
+ [ -z "$NVM_IOJS_ORG_MIRROR" ] || die "MIRROR environment variables should not be exported"
22
+
23
+ [ "$(nvm_get_mirror node std)" = "https://nodejs.org/dist" ] || die "incorrect default node-std mirror"
24
+ [ "$(nvm_get_mirror iojs std)" = "https://iojs.org/dist" ] || die "incorrect default iojs-std mirror"
25
+
26
+ NVM_NODEJS_ORG_MIRROR="test://domain"
27
+ [ "$(nvm_get_mirror node std)" = "test://domain" ] || die "node-std mirror should respect NVM_NODEJS_ORG_MIRROR"
28
+ unset NVM_NODEJS_ORG_MIRROR
29
+
30
+ NVM_IOJS_ORG_MIRROR="test://domain"
31
+ [ "$(nvm_get_mirror iojs std)" = "test://domain" ] || die "iojs-std mirror should respect NVM_IOJS_ORG_MIRROR"
32
+ unset NVM_IOJS_ORG_MIRROR
@@ -0,0 +1,11 @@
1
+ #!/bin/sh
2
+
3
+ die () { echo "$@" ; exit 1; }
4
+
5
+ \. ../../../nvm.sh
6
+
7
+ nvm_has cat && type cat > /dev/null || die 'nvm_has locates "cat" properly'
8
+
9
+ [ "~$(nvm_has foobarbaz 2>&1)" = "~" ] || die "nvm_has does not suppress error output"
10
+
11
+ ! nvm_has foobarbaz && ! type foobarbaz >/dev/null 2>&1 || die "nvm_has does not return a nonzero exit code when not found"
@@ -0,0 +1,24 @@
1
+ #!/bin/sh
2
+
3
+ cleanup () { unalias foo; unalias grep; }
4
+ die () { echo "$@" ; cleanup ; exit 1; }
5
+
6
+ \. ../../../nvm.sh
7
+
8
+ alias foo='bar'
9
+ ! nvm_has_non_aliased foo || die '"nvm_has_non_aliased foo" was not true'
10
+
11
+ alias grep='grep'
12
+ unalias grep || die '"unalias grep" failed'
13
+ nvm_has_non_aliased grep || die '"nvm_has_non_aliased grep" with unaliased grep was not false'
14
+
15
+ alias grep='grep'
16
+ ! nvm_has_non_aliased grep || die '"nvm_is_alias grep" with aliased grep was not true'
17
+
18
+ nvm_has_non_aliased cat && type cat > /dev/null || die 'nvm_has_non_aliased locates "cat" properly'
19
+
20
+ [ "~$(nvm_has_non_aliased foobarbaz 2>&1)" = "~" ] || die "nvm_has_non_aliased does not suppress error output"
21
+
22
+ ! nvm_has_non_aliased foobarbaz && ! type foobarbaz >/dev/null 2>&1 || die "nvm_has_non_aliased does not return a nonzero exit code when not found"
23
+
24
+ cleanup
@@ -0,0 +1,32 @@
1
+ #!/bin/sh
2
+
3
+ die () { echo "$@" ; exit 1; }
4
+
5
+ \. ../../../nvm.sh
6
+ \. ../../common.sh
7
+
8
+ # Invalid version numbers fail
9
+ assert_not_ok nvm_has_solaris_binary ""
10
+ assert_not_ok nvm_has_solaris_binary "foo"
11
+
12
+ # "Invalid" node version numbers fail
13
+ assert_not_ok nvm_has_solaris_binary "v1.0.0"
14
+ assert_not_ok nvm_has_solaris_binary "v3.3.1"
15
+
16
+ # Valid io.js version numbers that have a Solaris binary succeed
17
+ assert_ok nvm_has_solaris_binary "iojs-v3.3.1"
18
+
19
+ # Invalid io.js version numbers fail
20
+ assert_not_ok nvm_has_solaris_binary "iojs-v0.12.7"
21
+
22
+ # Valid node version numbers that don't have a Solaris binary fail
23
+ assert_not_ok nvm_has_solaris_binary "v0.8.5"
24
+
25
+ # Valid node version numbers that have a Solaris binary succeed
26
+ assert_ok nvm_has_solaris_binary "v0.8.6"
27
+ assert_ok nvm_has_solaris_binary "v0.10.0"
28
+ assert_ok nvm_has_solaris_binary "v0.12.7"
29
+
30
+ # Valid "merged" version numbers succeed
31
+ assert_ok nvm_has_solaris_binary "v4.0.0"
32
+ assert_ok nvm_has_solaris_binary "v4.1.1"
@@ -0,0 +1,27 @@
1
+ #!/bin/sh
2
+
3
+ cleanup () {
4
+ rm -rf "${NVM_DIR}/versions/io.js/v0.1.2"
5
+ }
6
+ die () { echo "$@" ; exit 1; }
7
+
8
+ \. ../../../nvm.sh
9
+ \. ../../common.sh
10
+
11
+ make_fake_iojs v0.1.2
12
+
13
+ nvm use iojs-v0.1.2
14
+
15
+ if command -v iojs; then
16
+ nvm_has_system_iojs
17
+ else
18
+ ! nvm_has_system_iojs
19
+ fi
20
+
21
+ nvm deactivate /dev/null 2>&1
22
+
23
+ if command -v iojs; then
24
+ nvm_has_system_iojs
25
+ else
26
+ ! nvm_has_system_iojs
27
+ fi
@@ -0,0 +1,27 @@
1
+ #!/bin/sh
2
+
3
+ \. ../../../nvm.sh
4
+ \. ../../common.sh
5
+
6
+ cleanup () {
7
+ rm -rf "${NVM_DIR}/v0.1.2"
8
+ }
9
+ die () { echo "$@" ; exit 1; }
10
+
11
+ make_fake_node v0.1.2
12
+
13
+ nvm use 0.1.2
14
+
15
+ if command -v node; then
16
+ nvm_has_system_node
17
+ else
18
+ ! nvm_has_system_node
19
+ fi
20
+
21
+ nvm deactivate /dev/null 2>&1
22
+
23
+ if command -v node; then
24
+ nvm_has_system_node
25
+ else
26
+ ! nvm_has_system_node
27
+ fi
@@ -0,0 +1,59 @@
1
+ #!/bin/sh
2
+
3
+ cleanup () {
4
+ [ -d "$tmp_dir" ] && rm -rf "$tmp_dir"
5
+ [ -d "$NVM_DIR" ] && rm -rf "$NVM_DIR"
6
+ unset -f die cleanup test_archi nvm_supports_xz
7
+ unset NVM_DIR tmp_dir version archi
8
+ }
9
+
10
+ die () { echo "$@" ; cleanup ; exit 1; }
11
+
12
+ test_archi(){
13
+ local os="$1"
14
+ local version="$2"
15
+ local archi="$os-$3"
16
+ local node="$4"
17
+ local ext="$5"
18
+ local command="$6"
19
+ local command_option="$7"
20
+ local node_path="$tmp_dir/node-$version-$archi/$node"
21
+
22
+ # Create tarball
23
+ mkdir -p "$(dirname "$node_path")"
24
+ echo "node $version" > "$node_path"
25
+ (cd "$tmp_dir" && "$command" "$command_option" "$tmp_dir/node-$version-$archi.$ext" "node-$version-$archi" && rm -rf "$tmp_dir/node-$version-$archi")
26
+ [ -f "$tmp_dir/node-$version-$archi.$ext" ] || die "Unable to create fake $ext file"
27
+
28
+ # Extract it
29
+ nvm_install_binary_extract "$os" "$version" "${version:1}" "$tmp_dir/node-$version-$archi.$ext" "$tmp_dir/files"
30
+ [ "$(cat "$NVM_DIR/versions/node/$version/bin/node")" = "node $version" ] || die "Unable to extract $ext file"
31
+ }
32
+
33
+ \. ../../../nvm.sh
34
+
35
+ set -ex
36
+
37
+ # nvm_install_binary_extract is available
38
+ type nvm_install_binary_extract > /dev/null 2>&1 || die 'nvm_install_binary_extract is not available'
39
+
40
+ NVM_DIR=$(mktemp -d)
41
+ tmp_dir=$(mktemp -d)
42
+ if [ -z "$NVM_DIR" ] || [ -z "$tmp_dir" ]; then
43
+ die 'Unable to create temporary folder'
44
+ fi
45
+
46
+ # Test windows zip
47
+ test_archi 'win' 'v15.6.0' 'x64' 'node' 'zip' 'zip' '-qr'
48
+
49
+ # Test linux tar.xz
50
+ test_archi 'linux' 'v14.15.4' 'x64' 'bin/node' 'tar.xz' 'tar' '-cJf'
51
+
52
+ nvm_supports_xz(){
53
+ return 1
54
+ }
55
+
56
+ # Test linux tar.gz
57
+ test_archi 'linux' 'v12.9.0' 'x64' 'bin/node' 'tar.gz' 'tar' '-czf'
58
+
59
+ cleanup
@@ -0,0 +1,30 @@
1
+ #!/bin/sh
2
+
3
+ cleanup () {
4
+ nvm cache clear
5
+ nvm deactivate
6
+ rm -rf ${NVM_DIR}/v*
7
+ nvm unalias default
8
+ }
9
+
10
+ die () { echo "$@" ; cleanup; exit 1;}
11
+
12
+ \. ../../../nvm.sh
13
+
14
+ nvm_binary_available() {
15
+ return 1
16
+ }
17
+
18
+ # Unit test to check if the function errors out when the flag is set
19
+ OUTPUT="$(nvm_install_binary node std 8.0.0 1 2>&1)"
20
+ EXPECTED_OUTPUT='Binary download failed. Download from source aborted.'
21
+ if [ "${OUTPUT#*$EXPECTED_OUTPUT}" = "${OUTPUT}" ]; then
22
+ die "No source binary flag is active and should have returned >${EXPECTED_OUTPUT}<. Instead it returned >${OUTPUT}<"
23
+ fi
24
+
25
+ # Unit test to check if the function errors out when the flag is set
26
+ OUTPUT="$(nvm_install_binary node std 8.0.0 0 2>&1)"
27
+ EXPECTED_OUTPUT='Binary download failed. Download from source aborted.'
28
+ if [ "${OUTPUT#*$EXPECTED_OUTPUT}" != "${OUTPUT}" ]; then
29
+ die "No source binary flag is not active and should have downloaded from source. Instead it returned >${OUTPUT}<"
30
+ fi
@@ -0,0 +1,58 @@
1
+ #!/bin/sh
2
+
3
+ \. ../../common.sh
4
+
5
+ die () { echo "$@" ; exit 1; }
6
+
7
+ \. ../../../nvm.sh
8
+
9
+ nvm deactivate >/dev/null 2>&1
10
+
11
+ CURRENT="$(nvm current)"
12
+ [ "$CURRENT" = 'none' ] || [ "$CURRENT" = 'system' ] || die "nvm should be using none or system; got $CURRENT"
13
+
14
+ nvm_ls_current() {
15
+ echo 'none'
16
+ }
17
+ node() {
18
+ return 1
19
+ }
20
+ npm() {
21
+ echo '1.2.3'
22
+ }
23
+
24
+ OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)"
25
+ EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)"
26
+
27
+ EXPECTED="Unable to obtain node version."
28
+ [ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is unavailable, expected >${EXPECTED}<; got >${OUTPUT}"
29
+
30
+ node() {
31
+ echo 'v4.5.6'
32
+ }
33
+ nvm_ls_current() {
34
+ node --version
35
+ }
36
+ npm() {
37
+ return 1
38
+ }
39
+ OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)"
40
+ EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)"
41
+
42
+ EXPECTED="Unable to obtain npm version."
43
+ [ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is available and npm is unavailable, expected >${EXPECTED}<; got >${OUTPUT}"
44
+
45
+ node() {
46
+ echo 'v4.5.6'
47
+ }
48
+ nvm_ls_current() {
49
+ echo 'system'
50
+ }
51
+ npm() {
52
+ return 1
53
+ }
54
+ OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)"
55
+ EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)"
56
+
57
+ EXPECTED="Unable to obtain npm version."
58
+ [ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is system and npm is unavailable, expected >${EXPECTED}<; got >${OUTPUT}"
@@ -0,0 +1,43 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ cleanup () {
6
+ nvm cache clear
7
+ nvm deactivate
8
+ rm -rf ${NVM_DIR}/v*
9
+ nvm unalias default
10
+ }
11
+
12
+ die () { >&2 echo "$@" ; cleanup ; exit 1; }
13
+
14
+ \. ../../../nvm.sh
15
+
16
+ nvm_has_colors() { return 1 ; }
17
+
18
+ cleanup
19
+
20
+ OUTPUT="$(2>&1 nvm install --no-progress v0.12.18)"
21
+ EXPECTED_OUTPUT="Downloading and installing node v0.12.18...
22
+ Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz...
23
+ Computing checksum with sha256sum
24
+ Checksums matched!
25
+ Now using node v0.12.18 (npm v2.15.11)
26
+ Creating default alias: default -> v0.12.18 *"
27
+
28
+ [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<"
29
+
30
+ cleanup
31
+
32
+ OUTPUT="$(2>&1 nvm install v0.12.18)"
33
+ EXPECTED_OUTPUT="Downloading and installing node v0.12.18...
34
+ Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz...
35
+ ######################################################################## 100.0%
36
+ Computing checksum with sha256sum
37
+ Checksums matched!
38
+ Now using node v0.12.18 (npm v2.15.11)
39
+ Creating default alias: default -> v0.12.18 *"
40
+
41
+ [ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<"
42
+
43
+ cleanup
@@ -0,0 +1,7 @@
1
+ #!/bin/sh
2
+
3
+ die () { echo "$@" ; exit 1; }
4
+
5
+ \. ../../../nvm.sh
6
+
7
+ [ "$(nvm_iojs_prefix)" = "iojs" ] || die '"nvm_iojs_prefix" did not return the string "iojs". why did this fail?!'
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+
3
+ die () { echo "$@" ; exit 1; }
4
+
5
+ \. ../../../nvm.sh
6
+ \. ../../common.sh
7
+
8
+ assert_not_ok nvm_iojs_version_has_solaris_binary ""
9
+ assert_not_ok nvm_iojs_version_has_solaris_binary "foo"
10
+ assert_not_ok nvm_iojs_version_has_solaris_binary "v1.1.0"
11
+
12
+ assert_ok nvm_iojs_version_has_solaris_binary "v3.3.1"
13
+ assert_ok nvm_iojs_version_has_solaris_binary "iojs-v3.3.1"
14
+ assert_ok nvm_iojs_version_has_solaris_binary "v3.3.2"
15
+ assert_ok nvm_iojs_version_has_solaris_binary "iojs-v3.3.2"
16
+ assert_ok nvm_iojs_version_has_solaris_binary "v3.4.1"
17
+ assert_ok nvm_iojs_version_has_solaris_binary "iojs-v3.4.1"
@@ -0,0 +1,20 @@
1
+ #!/bin/sh
2
+
3
+ cleanup () { unalias foo; unalias grep; }
4
+ die () { echo "$@" ; cleanup ; exit 1; }
5
+
6
+ \. ../../../nvm.sh
7
+
8
+ alias foo='bar'
9
+ nvm_is_alias foo || die '"nvm_is_alias foo" was not true'
10
+
11
+ ! nvm_is_alias nvm_is_alias || die '"nvm_is_alias nvm_is_alias was not false'
12
+
13
+ alias grep='grep'
14
+ unalias grep || die '"unalias grep" failed'
15
+ ! nvm_is_alias grep || die '"nvm_is_alias grep" with unaliased grep was not false'
16
+
17
+ alias grep='grep'
18
+ nvm_is_alias grep || die '"nvm_is_alias grep" with aliased grep was not true'
19
+
20
+ cleanup