First example!
This commit is contained in:
102
test/test-help
Normal file
102
test/test-help
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user