forked from toolshed/abra
		
	test: warning not to test cli [ci skip]
This commit is contained in:
		
							
								
								
									
										38
									
								
								cli/internal/errors_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								cli/internal/errors_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,38 @@
 | 
			
		||||
package internal
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/urfave/cli/v2"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// Testing functions that call os.Exit
 | 
			
		||||
// https://stackoverflow.com/questions/26225513/how-to-test-os-exit-scenarios-in-go
 | 
			
		||||
// https://talks.golang.org/2014/testing.slide#23
 | 
			
		||||
 | 
			
		||||
var testapp = &cli.App{
 | 
			
		||||
	Name:  "abra",
 | 
			
		||||
	Usage: `The Co-op Cloud command-line utility belt 🎩🐇`,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// not testing output as that changes. just if it exits with code 1
 | 
			
		||||
// does not work because of some weird errors on cli's part. Its a hard lib to test effectively.
 | 
			
		||||
// func TestShowSubcommandHelpAndError(t *testing.T) {
 | 
			
		||||
// 	if os.Getenv("HelpAndError") == "1" {
 | 
			
		||||
// 		ShowSubcommandHelpAndError(cli.NewContext(testapp, nil, nil), errors.New("Test error"))
 | 
			
		||||
// 		return
 | 
			
		||||
// 	}
 | 
			
		||||
// 	cmd := exec.Command(os.Args[0], "-test.run=TestShowSubcommandHelpAndError")
 | 
			
		||||
// 	cmd.Env = append(os.Environ(), "HelpAndError=1")
 | 
			
		||||
// 	var out bytes.Buffer
 | 
			
		||||
// 	cmd.Stderr = &out
 | 
			
		||||
// 	err := cmd.Run()
 | 
			
		||||
// 	println(out.String())
 | 
			
		||||
// 	if !strings.Contains(out.String(), "Test error") {
 | 
			
		||||
 | 
			
		||||
// 		t.Fatalf("expected command to show the error causing the exit, did not get correct stdout output")
 | 
			
		||||
// 	}
 | 
			
		||||
 | 
			
		||||
// 	if e, ok := err.(*exec.ExitError); ok && !e.Success() {
 | 
			
		||||
// 		return
 | 
			
		||||
// 	}
 | 
			
		||||
// 	t.Fatalf("process ran with err %v, want exit status 1", err)
 | 
			
		||||
// }
 | 
			
		||||
		Reference in New Issue
	
	Block a user