github.com/marianogappa/goreleaser@v0.26.2-0.20170715090149-96acd0a9fc46/internal/name/name_test.go (about) 1 package name 2 3 import ( 4 "testing" 5 6 "github.com/goreleaser/goreleaser/config" 7 "github.com/goreleaser/goreleaser/context" 8 "github.com/goreleaser/goreleaser/internal/buildtarget" 9 "github.com/goreleaser/goreleaser/pipeline/defaults" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestNameFor(t *testing.T) { 14 assert := assert.New(t) 15 16 var config = config.Project{ 17 Archive: config.Archive{ 18 NameTemplate: "{{.Binary}}_{{.Os}}_{{.Arch}}_{{.Tag}}_{{.Version}}", 19 Replacements: map[string]string{ 20 "darwin": "Darwin", 21 "amd64": "x86_64", 22 }, 23 }, 24 ProjectName: "test", 25 } 26 var ctx = &context.Context{ 27 Config: config, 28 Version: "1.2.3", 29 Git: context.GitInfo{ 30 CurrentTag: "v1.2.3", 31 }, 32 } 33 34 name, err := For(ctx, buildtarget.New("darwin", "amd64", "")) 35 assert.NoError(err) 36 assert.Equal("test_Darwin_x86_64_v1.2.3_1.2.3", name) 37 } 38 39 func TestNameForBuild(t *testing.T) { 40 assert := assert.New(t) 41 42 var ctx = &context.Context{ 43 Config: config.Project{ 44 Archive: config.Archive{ 45 NameTemplate: "{{.Binary}}_{{.Os}}_{{.Arch}}_{{.Tag}}_{{.Version}}", 46 Replacements: map[string]string{ 47 "darwin": "Darwin", 48 "amd64": "x86_64", 49 }, 50 }, 51 ProjectName: "test", 52 }, 53 Version: "1.2.3", 54 Git: context.GitInfo{ 55 CurrentTag: "v1.2.3", 56 }, 57 } 58 59 name, err := ForBuild( 60 ctx, 61 config.Build{Binary: "foo"}, 62 buildtarget.New("darwin", "amd64", ""), 63 ) 64 assert.NoError(err) 65 assert.Equal("foo_Darwin_x86_64_v1.2.3_1.2.3", name) 66 } 67 68 func TestInvalidNameTemplate(t *testing.T) { 69 var assert = assert.New(t) 70 var ctx = &context.Context{ 71 Config: config.Project{ 72 Archive: config.Archive{ 73 NameTemplate: "{{.Binary}_{{.Os}}_{{.Arch}}_{{.Version}}", 74 }, 75 ProjectName: "test", 76 }, 77 Git: context.GitInfo{ 78 CurrentTag: "v1.2.3", 79 }, 80 } 81 82 _, err := For(ctx, buildtarget.New("darwin", "amd64", "")) 83 assert.Error(err) 84 } 85 86 func TestNameDefaltTemplate(t *testing.T) { 87 assert := assert.New(t) 88 var ctx = &context.Context{ 89 Config: config.Project{ 90 Archive: config.Archive{ 91 NameTemplate: defaults.NameTemplate, 92 }, 93 ProjectName: "test", 94 }, 95 Version: "1.2.3", 96 } 97 type buildTarget struct { 98 goos, goarch, goarm string 99 } 100 for key, target := range map[string]buildtarget.Target{ 101 "test_1.2.3_darwin_amd64": buildtarget.New("darwin", "amd64", ""), 102 "test_1.2.3_linux_arm64": buildtarget.New("linux", "arm64", ""), 103 "test_1.2.3_linux_armv7": buildtarget.New("linux", "arm", "7"), 104 } { 105 t.Run(key, func(t *testing.T) { 106 name, err := For(ctx, target) 107 assert.NoError(err) 108 assert.Equal(key, name) 109 }) 110 } 111 112 }