#!/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