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  }