get.porter.sh/porter@v1.3.0/pkg/exec/version_test.go (about) 1 package exec 2 3 import ( 4 "strings" 5 "testing" 6 7 "get.porter.sh/porter/pkg" 8 "get.porter.sh/porter/pkg/porter/version" 9 "get.porter.sh/porter/pkg/printer" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestPrintVersion(t *testing.T) { 14 pkg.Commit = "abc123" 15 pkg.Version = "v1.2.3" 16 17 m := NewTestMixin(t) 18 19 opts := version.Options{} 20 err := opts.Validate() 21 require.NoError(t, err) 22 err = m.PrintVersion(opts) 23 require.NoError(t, err) 24 25 gotOutput := m.TestConfig.TestContext.GetOutput() 26 wantOutput := "exec v1.2.3 (abc123) by Porter Authors" 27 if !strings.Contains(gotOutput, wantOutput) { 28 t.Fatalf("invalid output:\nWANT:\t%q\nGOT:\t%q\n", wantOutput, gotOutput) 29 } 30 } 31 32 func TestPrintJsonVersion(t *testing.T) { 33 pkg.Commit = "abc123" 34 pkg.Version = "v1.2.3" 35 36 m := NewTestMixin(t) 37 38 opts := version.Options{} 39 opts.RawFormat = string(printer.FormatJson) 40 err := opts.Validate() 41 require.NoError(t, err) 42 err = m.PrintVersion(opts) 43 require.NoError(t, err) 44 45 gotOutput := m.TestConfig.TestContext.GetOutput() 46 wantOutput := `{ 47 "name": "exec", 48 "version": "v1.2.3", 49 "commit": "abc123", 50 "author": "Porter Authors" 51 } 52 ` 53 if !strings.Contains(gotOutput, wantOutput) { 54 t.Fatalf("invalid output:\nWANT:\t%q\nGOT:\t%q\n", wantOutput, gotOutput) 55 } 56 }