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 }