103 lines
2.1 KiB
Plaintext
103 lines
2.1 KiB
Plaintext
|
#!/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
|