Browse Source

tests from readme

fast tests

alias

unalias

more alias tests

tests

document testing

warn not to run while testing

chmod +x deactivate

specify the version (commit) of urchin

installation test

run

tests for ls

switch unsetopt to the thing creationix has

rename tests

urchin log

adjust urchin version
master
Thomas Levine 13 years ago
parent
commit
a27d39139b
  1. 4
      .gitignore
  2. 24
      README.markdown
  3. 2
      nvm.sh
  4. 4
      test/fast/Aliases/Running "nvm alias <aliasname>" should list but one alias.
  5. 4
      test/fast/Aliases/Running "nvm alias" should list all aliases.
  6. 6
      test/fast/Aliases/setup_dir
  7. 10
      test/fast/Listing versions/Running "nvm ls 0.2" should display only 0.2.x versions.
  8. 14
      test/fast/Listing versions/Running "nvm ls" should display all installed versions.
  9. 5
      test/fast/Running "nvm alias" should create a file in the alias directory.
  10. 6
      test/fast/Running "nvm deactivate" should unset the nvm environment variables.
  11. 6
      test/fast/Running "nvm unalias" should remove the alias file.
  12. 10
      test/fast/Running "nvm uninstall" should remove the appropriate directory.
  13. 4
      test/fast/Sourcing nvm.sh should make the nvm command available.
  14. 9
      test/fast/setup
  15. 9
      test/fast/setup_dir
  16. 7
      test/fast/teardown
  17. 13
      test/fast/teardown_dir
  18. 14
      test/slow/install

4
.gitignore vendored

@ -2,3 +2,7 @@ HEAD @@ -2,3 +2,7 @@ HEAD
src
v*
alias
# For testing
bak
.urchin.log

24
README.markdown

@ -57,6 +57,30 @@ The above copyright notice and this permission notice shall be included in all c @@ -57,6 +57,30 @@ The above copyright notice and this permission notice shall be included in all c
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
## Running tests
Tests are written in [Urchin](http://www.urchin.sh). Install Urchin like so.
wget -O /usr/local/bin https://raw.github.com/scraperwiki/urchin/0c6837cfbdd0963903bf0463b05160c2aecc22ef/urchin
chmod +x /usr/local/bin/urchin
(Or put it some other place in your PATH.)
There are slow tests and fast tests. The slow tests do things like install node
and check that the right versions are used. The fast tests fake this to test
things like aliases and uninstalling. From the root of the nvm git repository,
run the fast tests like this.
urchin test/fast
Run the slow tests like this.
urchin test/slow
Run all of the tests like this
urchin test
Nota bene: Avoid running nvm while the tests are running.
## Bash completion

2
nvm.sh

@ -12,7 +12,7 @@ fi @@ -12,7 +12,7 @@ fi
# Make zsh glob matching behave same as bash
# This fixes the "zsh: no matches found" errors
if [[ `which unsetopt 2>/dev/null` ]]; then
if [ ! -z "$(which unsetopt 2>/dev/null)" ]; then
unsetopt nomatch 2>/dev/null
fi

4
test/fast/Aliases/Running "nvm alias <aliasname>" should list but one alias.

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
#!/bin/sh
. ../../../nvm.sh
[ $(nvm alias test1 | wc -l) = '2' ]

4
test/fast/Aliases/Running "nvm alias" should list all aliases.

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
#!/bin/sh
. ../../../nvm.sh
[ $(nvm alias | wc -l) = '10' ]

6
test/fast/Aliases/setup_dir

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
#!/bin/sh
for i in $(seq 1 10)
do
echo v0.0.$i > ../../../alias/test$i
done

10
test/fast/Listing versions/Running "nvm ls 0.2" should display only 0.2.x versions.

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/bin/sh
mkdir ../../../v0.1.3
mkdir ../../../v0.2.3
. ../../../nvm.sh
# The result should contain only the appropriate version numbers.
nvm ls 0.2 | grep v0.2.3 &&
nvm ls 0.1 | grep -v v0.2.3

14
test/fast/Listing versions/Running "nvm ls" should display all installed versions.

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#!/bin/sh
. ../../../nvm.sh
mkdir ../../../v0.0.{1,3,9}
mkdir ../../../v0.3.{1,3,9}
# The result should contain the version numbers.
nvm ls | grep v0.0.1 &&
nvm ls | grep v0.0.3 &&
nvm ls | grep v0.0.9 &&
nvm ls | grep v0.3.1 &&
nvm ls | grep v0.3.3 &&
nvm ls | grep v0.3.9

5
test/fast/Running "nvm alias" should create a file in the alias directory.

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
#!/bin/sh
. ../../nvm.sh
nvm alias test v0.1.2
[ $(cat ../../alias/test) = 'v0.1.2' ]

6
test/fast/Running "nvm deactivate" should unset the nvm environment variables.

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
#!/bin/sh
. ../../nvm.sh
nvm &&
nvm deactivate &&
! nvm

6
test/fast/Running "nvm unalias" should remove the alias file.

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
#!/bin/sh
echo v0.1.2 > ../../alias/test
. ../../nvm.sh
nvm unalias test
! [ -e ../../alias/test ]

10
test/fast/Running "nvm uninstall" should remove the appropriate directory.

@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
#!/bin/sh
cd ../..
mkdir v0.0.1
mkdir src/node-v0.0.1
. ./nvm.sh
nvm uninstall v0.0.1
[ ! -d 'v0.0.1' ] && [ ! -d 'src/node-v0.0.1' ]

4
test/fast/Sourcing nvm.sh should make the nvm command available.

@ -0,0 +1,4 @@ @@ -0,0 +1,4 @@
#!/bin/sh
. ../../nvm.sh
nvm

9
test/fast/setup

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
#!/bin/sh
(
cd ../..
# Back up
rm -Rf v* src alias
mkdir src alias
)

9
test/fast/setup_dir

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
#!/bin/sh
(
cd ../..
# Back up
mkdir -p bak
mv v* src alias bak || sleep 0s
)

7
test/fast/teardown

@ -0,0 +1,7 @@ @@ -0,0 +1,7 @@
#!/bin/sh
# Remove temporary files
(
cd ../..
rm -fR v* src alias
)

13
test/fast/teardown_dir

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
#!/bin/sh
(
cd ../..
# Restore
if [ -d bak ]
then
mv bak/* . || sleep 0s
rmdir bak
fi
mkdir -p src alias
)

14
test/slow/install

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#!/bin/sh
set -e
. ../../nvm.sh
# Remove the stuff we're clobbering.
[ -e ../../v0.6.14 ] && rm -R ../../v0.6.14
# Install
nvm install 0.6.14
# Check
[ -d ../../v0.6.14 ]
nvm run v0.6.14 --version | grep v0.6.14
Loading…
Cancel
Save