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  }