github.com/drycc/workflow-cli@v1.5.3-0.20240322092846-d4ee25983af9/cmd/version_test.go (about) 1 package cmd 2 3 import ( 4 "bytes" 5 "fmt" 6 "net/http" 7 "testing" 8 9 drycc "github.com/drycc/controller-sdk-go" 10 "github.com/drycc/workflow-cli/pkg/testutil" 11 "github.com/drycc/workflow-cli/version" 12 "github.com/stretchr/testify/assert" 13 ) 14 15 func TestVersion(t *testing.T) { 16 t.Parallel() 17 cf, server, err := testutil.NewTestServerAndClient() 18 if err != nil { 19 t.Fatal(err) 20 } 21 defer server.Close() 22 var b bytes.Buffer 23 cmdr := DryccCmd{WOut: &b, ConfigFile: cf} 24 25 server.Mux.HandleFunc("/healthz", func(w http.ResponseWriter, _ *http.Request) { 26 w.Header().Add("DRYCC_API_VERSION", "1234") 27 w.WriteHeader(200) 28 }) 29 30 err = cmdr.Version(true) 31 assert.NoError(t, err) 32 33 assert.Equal(t, b.String(), fmt.Sprintf(`Workflow CLI Version: %s 34 Workflow CLI API Version: %s 35 Workflow Controller API Version: 1234 36 `, version.Version, drycc.APIVersion), "output") 37 38 b.Reset() 39 err = cmdr.Version(false) 40 assert.NoError(t, err) 41 assert.Equal(t, b.String(), version.Version+"\n", "output") 42 }