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 }