github.com/goreleaser/goreleaser@v1.25.1/cmd/check_test.go (about) 1 package cmd 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestCheckConfig(t *testing.T) { 11 cmd := newCheckCmd() 12 cmd.cmd.SetArgs([]string{"-f", "testdata/good.yml"}) 13 require.NoError(t, cmd.cmd.Execute()) 14 } 15 16 func TestCheckConfigNoArgs(t *testing.T) { 17 cmd := newCheckCmd() 18 cmd.cmd.SetArgs(nil) 19 require.NoError(t, cmd.cmd.Execute()) 20 require.Equal(t, 1, cmd.checked) 21 } 22 23 func TestCheckConfigMultipleFiles(t *testing.T) { 24 cmd := newCheckCmd() 25 cmd.cmd.SetArgs([]string{"testdata/good.yml", "testdata/invalid.yml"}) 26 require.Error(t, cmd.cmd.Execute()) 27 require.Equal(t, 2, cmd.checked) 28 } 29 30 func TestCheckConfigThatDoesNotExist(t *testing.T) { 31 cmd := newCheckCmd() 32 cmd.cmd.SetArgs([]string{"-f", "testdata/nope.yml"}) 33 require.ErrorIs(t, cmd.cmd.Execute(), os.ErrNotExist) 34 require.Equal(t, 0, cmd.checked) 35 } 36 37 func TestCheckConfigUnmarshalError(t *testing.T) { 38 cmd := newCheckCmd() 39 cmd.cmd.SetArgs([]string{"-f", "testdata/unmarshal_error.yml"}) 40 require.EqualError(t, cmd.cmd.Execute(), "yaml: unmarshal errors:\n line 1: field foo not found in type config.Project") 41 require.Equal(t, 0, cmd.checked) 42 } 43 44 func TestCheckConfigInvalid(t *testing.T) { 45 cmd := newCheckCmd() 46 cmd.cmd.SetArgs([]string{"-f", "testdata/invalid.yml"}) 47 require.Error(t, cmd.cmd.Execute()) 48 require.Equal(t, 1, cmd.checked) 49 } 50 51 func TestCheckConfigInvalidQuiet(t *testing.T) { 52 cmd := newCheckCmd() 53 cmd.cmd.SetArgs([]string{"-f", "testdata/invalid.yml", "-q"}) 54 require.Error(t, cmd.cmd.Execute()) 55 require.Equal(t, 1, cmd.checked) 56 } 57 58 func TestCheckConfigDeprecated(t *testing.T) { 59 cmd := newCheckCmd() 60 cmd.cmd.SetArgs([]string{"-f", "testdata/good.yml", "--deprecated"}) 61 require.Error(t, cmd.cmd.Execute()) 62 require.Equal(t, 1, cmd.checked) 63 }