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
 |