github.com/Finschia/finschia-sdk@v0.48.1/version/version_test.go (about)

     1  package version_test
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  	"runtime"
     7  	"testing"
     8  
     9  	"github.com/Finschia/ostracon/libs/cli"
    10  	"github.com/stretchr/testify/assert"
    11  	"github.com/stretchr/testify/require"
    12  
    13  	"github.com/Finschia/finschia-sdk/testutil"
    14  	"github.com/Finschia/finschia-sdk/version"
    15  )
    16  
    17  func TestNewInfo(t *testing.T) {
    18  	info := version.NewInfo()
    19  	want := fmt.Sprintf(`: 
    20  git commit: 
    21  build tags: 
    22  %s`, fmt.Sprintf("go version %s %s/%s", runtime.Version(), runtime.GOOS, runtime.GOARCH))
    23  	require.Equal(t, want, info.String())
    24  }
    25  
    26  func TestInfo_String(t *testing.T) {
    27  	info := version.Info{
    28  		Name:          "testapp",
    29  		AppName:       "testappd",
    30  		Version:       "1.0.0",
    31  		GitCommit:     "1b78457135a4104bc3af97f20654d49e2ea87454",
    32  		BuildTags:     "netgo,ledger",
    33  		GoVersion:     "go version go1.14 linux/amd64",
    34  		LbmSdkVersion: "0.42.5",
    35  	}
    36  	want := `testapp: 1.0.0
    37  git commit: 1b78457135a4104bc3af97f20654d49e2ea87454
    38  build tags: netgo,ledger
    39  go version go1.14 linux/amd64`
    40  	require.Equal(t, want, info.String())
    41  }
    42  
    43  func Test_runVersionCmd(t *testing.T) {
    44  	cmd := version.NewVersionCommand()
    45  	_, mockOut := testutil.ApplyMockIO(cmd)
    46  
    47  	cmd.SetArgs([]string{
    48  		fmt.Sprintf("--%s=''", cli.OutputFlag),
    49  		"--long=false",
    50  	})
    51  
    52  	require.NoError(t, cmd.Execute())
    53  	assert.Equal(t, "\n", mockOut.String())
    54  	mockOut.Reset()
    55  
    56  	cmd.SetArgs([]string{
    57  		fmt.Sprintf("--%s=json", cli.OutputFlag), "--long=true",
    58  	})
    59  
    60  	info := version.NewInfo()
    61  	stringInfo, err := json.Marshal(info)
    62  	require.NoError(t, err)
    63  	require.NoError(t, cmd.Execute())
    64  	assert.Equal(t, string(stringInfo)+"\n", mockOut.String())
    65  }