Skip to content

Commit d3340b7

Browse files
committed
Speed up test suite runtime
Instead of creating the project directory on every run, we only really need the package.json written each time. (And to clear out both the package.json and the .node-version files)
1 parent a801cd0 commit d3340b7

File tree

2 files changed

+16
-20
lines changed

2 files changed

+16
-20
lines changed

test/nodenv-package-json-engine.bats

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ load test_helper
44

55
@test 'Recognizes simple node version specified in package.json engines' {
66
with_installed_node_versions 4.2.1
7-
cd_into_package 4.2.1
7+
in_package_for_engine 4.2.1
88

99
run nodenv version
1010
assert_success '4.2.1 (set by package-json-engine matching 4.2.1)'
@@ -14,23 +14,23 @@ load test_helper
1414

1515
@test 'Recognizes a semver range matching an installed version' {
1616
with_installed_node_versions 4.2.1
17-
cd_into_package '>= 4.0.0'
17+
in_package_for_engine '>= 4.0.0'
1818

1919
run nodenv version
2020
assert_success '4.2.1 (set by package-json-engine matching >= 4.0.0)'
2121
}
2222

2323
@test 'Prefers the greatest installed version matching a range' {
2424
with_installed_node_versions 4.0.0 4.2.1
25-
cd_into_package '^4.0.0'
25+
in_package_for_engine '^4.0.0'
2626

2727
run nodenv version
2828
assert_success '4.2.1 (set by package-json-engine matching ^4.0.0)'
2929
}
3030

3131
@test 'Ignores non-matching installed versions' {
3232
with_installed_node_versions 0.12.7
33-
cd_into_package '>= 4.0.0'
33+
in_package_for_engine '>= 4.0.0'
3434

3535
# For unknown reasons, nodenv-version succeeds when version-name fails,
3636
# so we're testing version-name directly
@@ -46,7 +46,7 @@ load test_helper
4646

4747
@test 'Prefers nodenv-local over package.json' {
4848
with_installed_node_versions 4.2.1 5.0.0
49-
cd_into_package 4.2.1
49+
in_package_for_engine 4.2.1
5050
nodenv local 5.0.0
5151

5252
run nodenv version
@@ -55,7 +55,7 @@ load test_helper
5555

5656
@test 'Prefers nodenv-shell over package.json' {
5757
with_installed_node_versions 5.0.0
58-
cd_into_package 4.2.1
58+
in_package_for_engine 4.2.1
5959
eval "$(nodenv sh-shell 5.0.0)"
6060

6161
run nodenv version
@@ -64,7 +64,7 @@ load test_helper
6464

6565
@test 'Prefers package.json over nodenv-global' {
6666
with_installed_node_versions 4.2.1 5.0.0
67-
cd_into_package 4.2.1
67+
in_package_for_engine 4.2.1
6868
nodenv global 5.0.0
6969

7070
run nodenv version-name
@@ -73,7 +73,7 @@ load test_helper
7373

7474
@test 'Is not confused by nodenv-shell shadowing nodenv-global' {
7575
with_installed_node_versions 4.2.1 5.0.0
76-
cd_into_package 4.2.1
76+
in_package_for_engine 4.2.1
7777
nodenv global 5.0.0
7878
eval "$(nodenv sh-shell 5.0.0)"
7979

test/test_helper.bash

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
load ../node_modules/bats-assert/all
44

5+
EXAMPLE_PACKAGE_DIR="$BATS_TMPDIR/example_package"
6+
mkdir -p "$EXAMPLE_PACKAGE_DIR"
7+
58
setup() {
69
# common nodenv setup
710
unset NODENV_VERSION
@@ -11,34 +14,27 @@ setup() {
1114
export PATH="$node_modules_bin:/usr/bin:/bin:/usr/sbin:/sbin"
1215

1316
export NODENV_ROOT="$BATS_TEST_DIRNAME/fixtures/nodenv_root"
14-
15-
# unique
16-
17-
EXAMPLE_PACKAGE_DIR="$BATS_TMPDIR/example_package"
1817
}
1918

2019
teardown() {
21-
rm -r "$EXAMPLE_PACKAGE_DIR"
20+
rm "$EXAMPLE_PACKAGE_DIR"/.node-version
21+
rm "$EXAMPLE_PACKAGE_DIR"/package.json
2222
rm "$NODENV_ROOT"/versions/*
2323
rm -f "$NODENV_ROOT/version"
2424
}
2525

26-
# cd_into_package nodeVersion [extraArgs]
27-
cd_into_package() {
28-
mkdir -p "$EXAMPLE_PACKAGE_DIR"
26+
in_package_for_engine() {
2927
cd "$EXAMPLE_PACKAGE_DIR" || return 1
30-
local version="$1"
3128
cat << JSON > package.json
3229
{
3330
"engines": {
34-
"node": "$version"
31+
"node": "$1"
3532
}
3633
}
3734
JSON
3835
}
3936

4037
cd_into_babel_env_package() {
41-
mkdir -p "$EXAMPLE_PACKAGE_DIR"
4238
cd "$EXAMPLE_PACKAGE_DIR" || return 1
4339
cat << JSON > package.json
4440
{
@@ -55,6 +51,6 @@ JSON
5551

5652
with_installed_node_versions() {
5753
for v in "$@"; do
58-
ln -fhs $BATS_TEST_DIRNAME/fixtures/node-x.y.z/ $NODENV_ROOT/versions/$v
54+
ln -fhs "$BATS_TEST_DIRNAME/fixtures/node-x.y.z/" "$NODENV_ROOT/versions/$v"
5955
done
6056
}

0 commit comments

Comments
 (0)