github.com/triarius/goreleaser@v1.12.5/internal/middleware/skip/skip_test.go (about)

     1  package skip
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/triarius/goreleaser/pkg/context"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestSkip(t *testing.T) {
    12  	fakeErr := fmt.Errorf("fake error")
    13  	action := func(_ *context.Context) error {
    14  		return fakeErr
    15  	}
    16  
    17  	t.Run("not a skipper", func(t *testing.T) {
    18  		require.EqualError(t, Maybe(action, action)(nil), fakeErr.Error())
    19  	})
    20  
    21  	t.Run("skip", func(t *testing.T) {
    22  		require.NoError(t, Maybe(skipper{true}, action)(nil))
    23  	})
    24  
    25  	t.Run("do not skip", func(t *testing.T) {
    26  		require.EqualError(t, Maybe(skipper{false}, action)(nil), fakeErr.Error())
    27  	})
    28  }
    29  
    30  type skipper struct {
    31  	skip bool
    32  }
    33  
    34  func (s skipper) String() string { return "blah" }
    35  
    36  func (s skipper) Skip(_ *context.Context) bool {
    37  	return s.skip
    38  }