103 lines
1.9 KiB
Bash
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
|