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 }