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