103 lines
2.1 KiB
Bash
103 lines
2.1 KiB
Bash
#!/usr/bin/env bash
|
||
|
||
testUsageIsShownWhenNoCommandIsSpecified() {
|
||
echo '
|
||
#!/usr/bin/env bash
|
||
' > go
|
||
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
|
||
chmod +x go
|
||
|
||
try ./go
|
||
assertContains "$STDOUT" "Usage"
|
||
}
|
||
|
||
testHelpSubcommandCannotBeOverridden() {
|
||
echo '
|
||
#!/usr/bin/env bash
|
||
⚡️help() { echo "ah hah hah" ; }
|
||
' > go
|
||
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
|
||
chmod +x go
|
||
|
||
try ./go help
|
||
assertContains "$STDOUT" "Usage"
|
||
}
|
||
|
||
testHelpIncludesInvocationInstructions() {
|
||
SCRIPT_NAME="foo-$RANDOM"
|
||
echo '
|
||
#!/usr/bin/env bash
|
||
' > $SCRIPT_NAME
|
||
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> $SCRIPT_NAME
|
||
chmod +x $SCRIPT_NAME
|
||
|
||
try ./$SCRIPT_NAME help
|
||
assertContains "$STDOUT" "$SCRIPT_NAME SUBCOMMAND"
|
||
}
|
||
|
||
testHelpListsAllAvailableLightningCommands() {
|
||
echo '
|
||
#!/usr/bin/env bash
|
||
⚡️foo() { echo "ah hah hah" ; }
|
||
⚡️bar() { echo "ah hah hah" ; }
|
||
⚡️baz() { echo "ah hah hah" ; }
|
||
⚡️potato() { echo "ah hah hah" ; }
|
||
' > go
|
||
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
|
||
chmod +x go
|
||
|
||
try ./go help
|
||
assertContains "$STDOUT" "foo"
|
||
assertContains "$STDOUT" "bar"
|
||
assertContains "$STDOUT" "baz"
|
||
assertContains "$STDOUT" "potato"
|
||
assertContains "$STDOUT" "help"
|
||
}
|
||
|
||
testHelpLinesFromDefinedCommandsAreShown() {
|
||
echo '
|
||
#!/usr/bin/env bash
|
||
|
||
⚡️hello() {
|
||
_help-line "Say Hello" "$@"
|
||
echo "Hello, World!" ;
|
||
}
|
||
' > go
|
||
|
||
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
|
||
chmod +x go
|
||
|
||
try ./go
|
||
assertContains "$STDOUT" "Say Hello"
|
||
}
|
||
|
||
testHelpDoesNotExecuteFunctionsWithNoHelpLine() {
|
||
echo '
|
||
#!/usr/bin/env bash
|
||
|
||
⚡️hello() { echo "Hello, World!" ; }
|
||
' > go
|
||
|
||
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
|
||
chmod +x go
|
||
|
||
try ./go
|
||
assertNotContains "$STDOUT" "Hello, World"
|
||
}
|
||
|
||
testLightningShouldNotBeIncludedInSubcommandNames() {
|
||
echo '
|
||
#!/usr/bin/env bash
|
||
|
||
⚡️hello() { echo "Hello, World!" ; }
|
||
' > go
|
||
|
||
echo "source $(dirname $BASH_SOURCE)/../⚡️" >> go
|
||
chmod +x go
|
||
|
||
try ./go
|
||
assertNotContains "$STDOUT" "⚡️hello"
|
||
}
|
||
|
||
source $(dirname $0)/runner
|