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