github.com/alecthomas/kong@v0.9.1-0.20240410131203-2ab5733f1179/global_test.go (about)

     1  package kong
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/alecthomas/assert/v2"
     8  )
     9  
    10  func TestParseHandlingBadBuild(t *testing.T) {
    11  	var cli struct {
    12  		Enabled bool `kong:"fail='"`
    13  	}
    14  
    15  	args := os.Args
    16  	defer func() {
    17  		os.Args = args
    18  	}()
    19  
    20  	os.Args = []string{os.Args[0], "hi"}
    21  
    22  	defer func() {
    23  		if r := recover(); r != nil {
    24  			assert.Equal(t, "fail=' is not quoted properly", r.(error).Error()) //nolint
    25  		}
    26  	}()
    27  
    28  	Parse(&cli, Exit(func(_ int) { panic("exiting") }))
    29  
    30  	t.Fatal("we were expecting a panic")
    31  }