Run each test in a clean directory

This commit is contained in:
vlad 2021-12-20 19:52:28 -08:00
parent 4f70443bda
commit f679a866f1
3 changed files with 31 additions and 8 deletions

View File

@ -12,15 +12,38 @@ try() {
setUp() {
export TMPDIR="$PWD/.generated"
export-repo-root
move-to-working-directory
}
tearDown() {
[ "${_shunit_test_:=}" = '' ] && return 0
clean-up-working-directory
if [ "${__shunit_testSuccess:?}" != 0 ]; then
output-outputs
fi
}
export-repo-root() {
export REPO_ROOT="$PWD"
while ! [[ -d $REPO_ROOT/.git ]]; do
export REPO_ROOT=$(dirname $REPO_ROOT)
done
}
move-to-working-directory() {
original_dir="$PWD"
working_dir=$(mktemp -d)
cd $working_dir
}
clean-up-working-directory() {
cd $original_dir
rm -rf $working_dir
}
output-outputs() {
(
bold '*******Test failed********'

View File

@ -4,7 +4,7 @@ testUsageIsShownWhenNoCommandIsSpecified() {
echo '
#!/usr/bin/env bash
' > go
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
echo "source $REPO_ROOT/⚡️" >> go
chmod +x go
try ./go
@ -16,7 +16,7 @@ testHelpSubcommandCannotBeOverridden() {
#!/usr/bin/env bash
help() { echo "ah hah hah" ; }
' > go
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
echo "source $REPO_ROOT/⚡️" >> go
chmod +x go
try ./go help
@ -28,7 +28,7 @@ testHelpIncludesInvocationInstructions() {
echo '
#!/usr/bin/env bash
' > $SCRIPT_NAME
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> $SCRIPT_NAME
echo "source $REPO_ROOT/⚡️" >> $SCRIPT_NAME
chmod +x $SCRIPT_NAME
try ./$SCRIPT_NAME help
@ -43,7 +43,7 @@ testHelpListsAllAvailableLightningCommands() {
baz() { echo "ah hah hah" ; }
potato() { echo "ah hah hah" ; }
' > go
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
echo "source $REPO_ROOT/⚡️" >> go
chmod +x go
try ./go help
@ -64,7 +64,7 @@ testHelpLinesFromDefinedCommandsAreShown() {
}
' > go
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
echo "source $REPO_ROOT/⚡️" >> go
chmod +x go
try ./go
@ -78,7 +78,7 @@ testHelpDoesNotExecuteFunctionsWithNoHelpLine() {
hello() { echo "Hello, World!" ; }
' > go
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
echo "source $REPO_ROOT/⚡️" >> go
chmod +x go
try ./go
@ -92,7 +92,7 @@ testLightningShouldNotBeIncludedInSubcommandNames() {
hello() { echo "Hello, World!" ; }
' > go
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
echo "source $REPO_ROOT/⚡️" >> go
chmod +x go
try ./go

View File

@ -7,7 +7,7 @@ testDefiningALightningFunctionWorks() {
hello() { echo "Hello, World!" ; }
' > go
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
echo "source $REPO_ROOT/⚡️" >> go
chmod +x go
try ./go hello