get.porter.sh/porter@v1.3.0/cmd/porter/mixins_test.go (about)

     1  package main
     2  
     3  import (
     4  	"testing"
     5  
     6  	"get.porter.sh/porter/pkg/porter"
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestBuildListMixinsCommand_DefaultFormat(t *testing.T) {
    12  	p := porter.NewTestPorter(t)
    13  	defer p.Close()
    14  
    15  	cmd := buildMixinsListCommand(p.Porter)
    16  
    17  	err := cmd.PreRunE(cmd, []string{})
    18  
    19  	require.Nil(t, err)
    20  	assert.Equal(t, "plaintext", cmd.Flag("output").Value.String())
    21  }
    22  
    23  func TestBuildListMixinsCommand_AlternateFormat(t *testing.T) {
    24  	p := porter.NewTestPorter(t)
    25  	defer p.Close()
    26  
    27  	cmd := buildMixinsListCommand(p.Porter)
    28  	require.NoError(t, cmd.ParseFlags([]string{"-o", "json"}))
    29  
    30  	err := cmd.PreRunE(cmd, []string{})
    31  
    32  	require.Nil(t, err)
    33  	assert.Equal(t, "json", cmd.Flag("output").Value.String())
    34  }
    35  
    36  func TestBuildListMixinsCommand_BadFormat(t *testing.T) {
    37  	p := porter.NewTestPorter(t)
    38  	defer p.Close()
    39  
    40  	cmd := buildMixinsListCommand(p.Porter)
    41  	require.NoError(t, cmd.ParseFlags([]string{"-o", "flarts"}))
    42  
    43  	err := cmd.PreRunE(cmd, []string{})
    44  
    45  	require.NotNil(t, err)
    46  	require.Contains(t, err.Error(), "invalid format: flarts")
    47  }
    48  
    49  func TestBuildMixinInstallCommand(t *testing.T) {
    50  	p := porter.NewTestPorter(t)
    51  	defer p.Close()
    52  
    53  	cmd := BuildMixinInstallCommand(p.Porter)
    54  	err := cmd.ParseFlags([]string{"--url", "https://example.com/mixins/helm"})
    55  	require.NoError(t, err)
    56  
    57  	err = cmd.PreRunE(cmd, []string{"helm"})
    58  	require.NoError(t, err)
    59  }
    60  
    61  func TestBuildMixinInstallCommand_NoMixinName(t *testing.T) {
    62  	p := porter.NewTestPorter(t)
    63  	defer p.Close()
    64  
    65  	cmd := BuildMixinInstallCommand(p.Porter)
    66  
    67  	err := cmd.PreRunE(cmd, []string{})
    68  	require.EqualError(t, err, "no name was specified")
    69  }