github.com/triarius/goreleaser@v1.12.5/internal/pipe/archive/archive_meta_test.go (about)

     1  package archive
     2  
     3  import (
     4  	"path/filepath"
     5  	"testing"
     6  
     7  	"github.com/triarius/goreleaser/pkg/config"
     8  	"github.com/triarius/goreleaser/pkg/context"
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  func TestMeta(t *testing.T) {
    13  	t.Run("good", func(t *testing.T) {
    14  		dist := t.TempDir()
    15  		ctx := context.New(config.Project{
    16  			Dist: dist,
    17  			Archives: []config.Archive{
    18  				{
    19  					Meta:         true,
    20  					NameTemplate: "foo",
    21  					Files: []config.File{
    22  						{Source: "testdata/**/*.txt"},
    23  					},
    24  				},
    25  			},
    26  		})
    27  
    28  		require.NoError(t, Pipe{}.Default(ctx))
    29  		require.NoError(t, Pipe{}.Run(ctx))
    30  		require.Equal(
    31  			t,
    32  			[]string{"testdata/a/a.txt", "testdata/a/b/a.txt", "testdata/a/b/c/d.txt"},
    33  			tarFiles(t, filepath.Join(dist, "foo.tar.gz")),
    34  		)
    35  	})
    36  
    37  	t.Run("bad tmpl", func(t *testing.T) {
    38  		dist := t.TempDir()
    39  		ctx := context.New(config.Project{
    40  			Dist: dist,
    41  			Archives: []config.Archive{
    42  				{
    43  					Meta:         true,
    44  					NameTemplate: "foo{{.Os}}",
    45  					Files: []config.File{
    46  						{Source: "testdata/**/*.txt"},
    47  					},
    48  				},
    49  			},
    50  		})
    51  
    52  		require.NoError(t, Pipe{}.Default(ctx))
    53  		require.EqualError(t, Pipe{}.Run(ctx), `template: tmpl:1:5: executing "tmpl" at <.Os>: map has no entry for key "Os"`)
    54  	})
    55  
    56  	t.Run("no files", func(t *testing.T) {
    57  		dist := t.TempDir()
    58  		ctx := context.New(config.Project{
    59  			Dist: dist,
    60  			Archives: []config.Archive{
    61  				{
    62  					Meta:         true,
    63  					NameTemplate: "foo",
    64  				},
    65  			},
    66  		})
    67  
    68  		require.NoError(t, Pipe{}.Default(ctx))
    69  		require.EqualError(t, Pipe{}.Run(ctx), `no files found`)
    70  	})
    71  }