From e9a22d5165c2dda5a0e10506977081222549a8eb Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Sun, 14 Oct 2012 08:55:36 +0200 Subject: o Making sure ./app can be symlinked to an installation. o More tests. --- test/01-help.bats | 30 +++++++----------------------- test/02-app-help.bats | 38 ++++++++++++++++++++++++++++++++++++++ test/utils.bash | 24 ++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 23 deletions(-) mode change 100644 => 100755 test/01-help.bats create mode 100755 test/02-app-help.bats create mode 100644 test/utils.bash (limited to 'test') diff --git a/test/01-help.bats b/test/01-help.bats old mode 100644 new mode 100755 index 7d38592..8bd4fd7 --- 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 "$@" +} -- cgit v1.2.3