diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2012-10-14 08:55:36 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2012-10-14 08:55:36 +0200 |
commit | e9a22d5165c2dda5a0e10506977081222549a8eb (patch) | |
tree | 995e471a537719ecd950dfdccb8043836ab406ce /test | |
parent | a7a62352c46b5d2b37baaa09f8145b1171ca79fb (diff) | |
download | app.sh-e9a22d5165c2dda5a0e10506977081222549a8eb.tar.gz app.sh-e9a22d5165c2dda5a0e10506977081222549a8eb.tar.bz2 app.sh-e9a22d5165c2dda5a0e10506977081222549a8eb.tar.xz app.sh-e9a22d5165c2dda5a0e10506977081222549a8eb.zip |
o Making sure ./app can be symlinked to an installation.
o More tests.
Diffstat (limited to 'test')
-rwxr-xr-x[-rw-r--r--] | test/01-help.bats | 30 | ||||
-rwxr-xr-x | test/02-app-help.bats | 38 | ||||
-rw-r--r-- | test/utils.bash | 24 |
3 files changed, 69 insertions, 23 deletions
diff --git a/test/01-help.bats b/test/01-help.bats index 7d38592..8bd4fd7 100644..100755 --- a/test/01-help.bats +++ b/test/01-help.bats @@ -1,33 +1,17 @@ -#!/bin/bash +#!/usr/bin/env bats +# vim: set filetype=sh : -workdir=test-run - -# TODO: assert that the exit code is 1 for 'usage' outputs. -exit_usage=0 - -setup() { - rm -rf $workdir -} - -echo_lines() { - for line in "${lines[@]}"; do echo $line; done -} +load utils @test "./app" { - run ./app; echo_lines - [ $status -eq $exit_usage ] + app; echo_lines + [ $status -eq $exit_usage_wrong ] [ $(expr "${lines[0]}" : "usage: ./app .*") -ne 0 ] } @test "./app foo" { - run ./app foo; echo_lines - [ $status -eq $exit_usage ] + app foo; echo_lines + [ $status -eq $exit_usage_wrong ] [ "${lines[0]}" = "Error: No such method group: foo" ] [ $(expr "${lines[1]}" : "usage: ./app .*") -ne 0 ] } - -@test "./app app" { - run ./app app; echo_lines - [ $status -eq $exit_usage ] - [ $(expr "${lines[0]}" : "usage: ./app app .*") -ne 0 ] -} diff --git a/test/02-app-help.bats b/test/02-app-help.bats new file mode 100755 index 0000000..460762f --- /dev/null +++ b/test/02-app-help.bats @@ -0,0 +1,38 @@ +#!/usr/bin/env bats +# vim: set filetype=sh : + +load utils + +@test "./app app" { + app app; echo_lines + [ $status -eq $exit_usage_wrong ] + [ $(expr "${lines[0]}" : "usage: ./app app .*") -ne 0 ] + [ ${#lines[*]} == 6 ] +} + +@test "./app app install" { + app app install; echo_lines + [ $status -eq $exit_usage ] + [ $(expr "${lines[0]}" : "usage: install .*") -ne 0 ] + [ ${#lines[*]} == 6 ] +} + +@test "./app app list" { + app app list; echo_lines + [ $status -eq 0 ] + [ ${#lines[*]} == 0 ] +} + +@test "./app app list-versions" { + app app list-versions; echo_lines + [ $status -eq $exit_usage ] + [ $(expr "${lines[0]}" : "usage: list-versions .*") -ne 0 ] + [ ${#lines[*]} == 2 ] +} + +@test "./app app set-current" { + app app "set-current"; echo_lines + [ $status -eq $exit_usage ] + [ $(expr "${lines[0]}" : "usage: set-current .*") -ne 0 ] + [ ${#lines[*]} == 1 ] +} diff --git a/test/utils.bash b/test/utils.bash new file mode 100644 index 0000000..eacabe8 --- /dev/null +++ b/test/utils.bash @@ -0,0 +1,24 @@ +#!/bin/bash + +workdir=test-run + +# TODO: assert that the exit code is 1 for 'usage' outputs. +exit_usage=1 +exit_usage_wrong=0 + +echo_lines() { + for line in "${lines[@]}"; do echo $line; done +} + +APPSH=$(pwd)/app + +setup() { + rm -rf $BATS_TMPDIR/app.sh + mkdir $BATS_TMPDIR/app.sh + cd $BATS_TMPDIR/app.sh + ln -s $APPSH +} + +app() { + run ./app "$@" +} |