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 }