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  }