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  }