lightning-runner/test/test-help

103 lines
1.9 KiB
Bash

#!/usr/bin/env bash
testUsageIsShownWhenNoCommandIsSpecified() {
echo '
#!/usr/bin/env bash
' > go
echo "source $REPO_ROOT/⚡" >> go
chmod +x go
try ./go
assertContains "$STDOUT" "Usage"
}
testHelpSubcommandCannotBeOverridden() {
echo '
#!/usr/bin/env bash
⚡help() { echo "ah hah hah" ; }
' > go
echo "source $REPO_ROOT/⚡" >> go
chmod +x go
try ./go help
assertContains "$STDOUT" "Usage"
}
testHelpIncludesInvocationInstructions() {
SCRIPT_NAME="foo-$RANDOM"
echo '
#!/usr/bin/env bash
' > $SCRIPT_NAME
echo "source $REPO_ROOT/⚡" >> $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 $REPO_ROOT/⚡" >> 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 $REPO_ROOT/⚡" >> go
chmod +x go
try ./go
assertContains "$STDOUT" "Say Hello"
}
testHelpDoesNotExecuteFunctionsWithNoHelpLine() {
echo '
#!/usr/bin/env bash
⚡hello() { echo "Hello, World!" ; }
' > go
echo "source $REPO_ROOT/⚡" >> go
chmod +x go
try ./go
assertNotContains "$STDOUT" "Hello, World"
}
testLightningShouldNotBeIncludedInSubcommandNames() {
echo '
#!/usr/bin/env bash
⚡hello() { echo "Hello, World!" ; }
' > go
echo "source $REPO_ROOT/⚡" >> go
chmod +x go
try ./go
assertNotContains "$STDOUT" "⚡hello"
}
source $(dirname $0)/runner