github.com/databricks/cli@v0.203.0/internal/version_test.go (about)

     1  package internal
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"testing"
     7  
     8  	"github.com/databricks/cli/internal/build"
     9  	"github.com/stretchr/testify/assert"
    10  )
    11  
    12  var expectedVersion = fmt.Sprintf("Databricks CLI v%s\n", build.GetInfo().Version)
    13  
    14  func TestVersionFlagShort(t *testing.T) {
    15  	stdout, stderr := RequireSuccessfulRun(t, "-v")
    16  	assert.Equal(t, expectedVersion, stdout.String())
    17  	assert.Equal(t, "", stderr.String())
    18  }
    19  
    20  func TestVersionFlagLong(t *testing.T) {
    21  	stdout, stderr := RequireSuccessfulRun(t, "--version")
    22  	assert.Equal(t, expectedVersion, stdout.String())
    23  	assert.Equal(t, "", stderr.String())
    24  }
    25  
    26  func TestVersionCommand(t *testing.T) {
    27  	stdout, stderr := RequireSuccessfulRun(t, "version")
    28  	assert.Equal(t, expectedVersion, stdout.String())
    29  	assert.Equal(t, "", stderr.String())
    30  }
    31  
    32  func TestVersionCommandWithJSONOutput(t *testing.T) {
    33  	stdout, stderr := RequireSuccessfulRun(t, "version", "--output", "json")
    34  	assert.NotEmpty(t, stdout.String())
    35  	assert.Equal(t, "", stderr.String())
    36  
    37  	// Deserialize stdout and confirm we see the right fields.
    38  	var output map[string]any
    39  	err := json.Unmarshal(stdout.Bytes(), &output)
    40  	assert.NoError(t, err)
    41  	assert.Equal(t, build.GetInfo().Version, output["Version"])
    42  }