github.com/amane3/goreleaser@v0.182.0/internal/pipe/snapshot/snapshot_test.go (about) 1 package snapshot 2 3 import ( 4 "testing" 5 6 "github.com/amane3/goreleaser/internal/testlib" 7 "github.com/amane3/goreleaser/pkg/config" 8 "github.com/amane3/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 func TestDefault(t *testing.T) { 16 var ctx = &context.Context{ 17 Config: config.Project{ 18 Snapshot: config.Snapshot{}, 19 }, 20 } 21 require.NoError(t, Pipe{}.Default(ctx)) 22 require.Equal(t, "{{ .Tag }}-SNAPSHOT-{{ .ShortCommit }}", ctx.Config.Snapshot.NameTemplate) 23 } 24 25 func TestDefaultSet(t *testing.T) { 26 var ctx = &context.Context{ 27 Config: config.Project{ 28 Snapshot: config.Snapshot{ 29 NameTemplate: "snap", 30 }, 31 }, 32 } 33 require.NoError(t, Pipe{}.Default(ctx)) 34 require.Equal(t, "snap", ctx.Config.Snapshot.NameTemplate) 35 } 36 37 func TestSnapshotInvalidNametemplate(t *testing.T) { 38 var ctx = context.New(config.Project{ 39 Snapshot: config.Snapshot{ 40 NameTemplate: "{{.ShortCommit}{{{sss}}}", 41 }, 42 }) 43 ctx.Snapshot = true 44 require.EqualError(t, Pipe{}.Run(ctx), `failed to generate snapshot name: template: tmpl:1: unexpected "}" in operand`) 45 } 46 47 func TestSnapshotEmptyFinalName(t *testing.T) { 48 var ctx = context.New(config.Project{ 49 Snapshot: config.Snapshot{ 50 NameTemplate: "{{ .Commit }}", 51 }, 52 }) 53 ctx.Snapshot = true 54 ctx.Git.CurrentTag = "v1.2.3" 55 require.EqualError(t, Pipe{}.Run(ctx), "empty snapshot name") 56 } 57 58 func TestNotASnapshot(t *testing.T) { 59 var ctx = context.New(config.Project{}) 60 testlib.AssertSkipped(t, Pipe{}.Run(ctx)) 61 }