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  }