github.com/triarius/goreleaser@v1.12.5/internal/pipe/snapshot/snapshot_test.go (about) 1 package snapshot 2 3 import ( 4 "testing" 5 6 "github.com/triarius/goreleaser/internal/testlib" 7 "github.com/triarius/goreleaser/pkg/config" 8 "github.com/triarius/goreleaser/pkg/context" 9 "github.com/stretchr/testify/require" 10 ) 11 12 func TestStringer(t *testing.T) { 13 require.NotEmpty(t, Pipe{}.String()) 14 } 15 16 func TestDefault(t *testing.T) { 17 ctx := &context.Context{ 18 Config: config.Project{ 19 Snapshot: config.Snapshot{}, 20 }, 21 } 22 require.NoError(t, Pipe{}.Default(ctx)) 23 require.Equal(t, "{{ .Version }}-SNAPSHOT-{{ .ShortCommit }}", ctx.Config.Snapshot.NameTemplate) 24 } 25 26 func TestDefaultSet(t *testing.T) { 27 ctx := &context.Context{ 28 Config: config.Project{ 29 Snapshot: config.Snapshot{ 30 NameTemplate: "snap", 31 }, 32 }, 33 } 34 require.NoError(t, Pipe{}.Default(ctx)) 35 require.Equal(t, "snap", ctx.Config.Snapshot.NameTemplate) 36 } 37 38 func TestSnapshotInvalidNametemplate(t *testing.T) { 39 ctx := context.New(config.Project{ 40 Snapshot: config.Snapshot{ 41 NameTemplate: "{{.ShortCommit}{{{sss}}}", 42 }, 43 }) 44 testlib.RequireTemplateError(t, Pipe{}.Run(ctx)) 45 } 46 47 func TestSnapshotEmptyFinalName(t *testing.T) { 48 ctx := context.New(config.Project{ 49 Snapshot: config.Snapshot{ 50 NameTemplate: "{{ .Commit }}", 51 }, 52 }) 53 ctx.Git.CurrentTag = "v1.2.3" 54 require.EqualError(t, Pipe{}.Run(ctx), "empty snapshot name") 55 } 56 57 func TestSnapshot(t *testing.T) { 58 ctx := context.New(config.Project{ 59 Snapshot: config.Snapshot{ 60 NameTemplate: "{{ incpatch .Tag }}", 61 }, 62 }) 63 ctx.Git.CurrentTag = "v1.2.3" 64 require.NoError(t, Pipe{}.Run(ctx)) 65 require.Equal(t, "v1.2.4", ctx.Version) 66 } 67 68 func TestSkip(t *testing.T) { 69 t.Run("skip", func(t *testing.T) { 70 require.True(t, Pipe{}.Skip(context.New(config.Project{}))) 71 }) 72 73 t.Run("dont skip", func(t *testing.T) { 74 ctx := context.New(config.Project{}) 75 ctx.Snapshot = true 76 require.False(t, Pipe{}.Skip(ctx)) 77 }) 78 }