github.com/amane3/goreleaser@v0.182.0/internal/pipe/semver/semver_test.go (about) 1 package semver 2 3 import ( 4 "testing" 5 6 "github.com/amane3/goreleaser/internal/pipe" 7 8 "github.com/amane3/goreleaser/pkg/config" 9 "github.com/amane3/goreleaser/pkg/context" 10 "github.com/stretchr/testify/require" 11 ) 12 13 func TestDescription(t *testing.T) { 14 require.NotEmpty(t, Pipe{}.String()) 15 } 16 17 func TestValidSemver(t *testing.T) { 18 var ctx = context.New(config.Project{}) 19 ctx.Git.CurrentTag = "v1.5.2-rc1" 20 require.NoError(t, Pipe{}.Run(ctx)) 21 require.Equal(t, context.Semver{ 22 Major: 1, 23 Minor: 5, 24 Patch: 2, 25 Prerelease: "rc1", 26 }, ctx.Semver) 27 } 28 29 func TestInvalidSemver(t *testing.T) { 30 var ctx = context.New(config.Project{}) 31 ctx.Git.CurrentTag = "aaaav1.5.2-rc1" 32 var err = Pipe{}.Run(ctx) 33 require.Error(t, err) 34 require.Contains(t, err.Error(), "failed to parse tag aaaav1.5.2-rc1 as semver") 35 } 36 37 func TestInvalidSemverOnSnapshots(t *testing.T) { 38 var ctx = context.New(config.Project{}) 39 ctx.Git.CurrentTag = "aaaav1.5.2-rc1" 40 ctx.Snapshot = true 41 require.EqualError(t, Pipe{}.Run(ctx), pipe.ErrSnapshotEnabled.Error()) 42 require.Equal(t, context.Semver{ 43 Major: 0, 44 Minor: 0, 45 Patch: 0, 46 Prerelease: "", 47 }, ctx.Semver) 48 } 49 50 func TestInvalidSemverSkipValidate(t *testing.T) { 51 var ctx = context.New(config.Project{}) 52 ctx.Git.CurrentTag = "aaaav1.5.2-rc1" 53 ctx.SkipValidate = true 54 require.EqualError(t, Pipe{}.Run(ctx), pipe.ErrSkipValidateEnabled.Error()) 55 require.Equal(t, context.Semver{ 56 Major: 0, 57 Minor: 0, 58 Patch: 0, 59 Prerelease: "", 60 }, ctx.Semver) 61 }