github.com/ahmet2mir/goreleaser@v0.180.3-0.20210927151101-8e5ee5a9b8c5/internal/pipe/docker/api_buildpack_test.go (about) 1 package docker 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestBuildCommandForBuildPack(t *testing.T) { 10 images := []string{"goreleaser/test_build_flag", "goreleaser/test_multiple_tags"} 11 tests := []struct { 12 name string 13 flags []string 14 expect []string 15 }{ 16 { 17 name: "no flags without builder", 18 flags: []string{}, 19 expect: []string{"build", images[0], "-t", images[1], "--builder=gcr.io/buildpacks/builder:v1"}, 20 }, 21 { 22 name: "single flag without builder", 23 flags: []string{"--clear-cache"}, 24 expect: []string{"build", images[0], "-t", images[1], "--clear-cache", "--builder=gcr.io/buildpacks/builder:v1"}, 25 }, 26 { 27 name: "multiple flags without builder", 28 flags: []string{"--clear-cache", "--verbose"}, 29 expect: []string{"build", images[0], "-t", images[1], "--clear-cache", "--verbose", "--builder=gcr.io/buildpacks/builder:v1"}, 30 }, 31 { 32 name: "builder with --builder flag", 33 flags: []string{"--builder=heroku/buildpacks:20"}, 34 expect: []string{"build", images[0], "-t", images[1], "--builder=heroku/buildpacks:20"}, 35 }, 36 { 37 name: "builder with -B flag", 38 flags: []string{"-B=heroku/buildpacks:18"}, 39 expect: []string{"build", images[0], "-t", images[1], "-B=heroku/buildpacks:18"}, 40 }, 41 } 42 for _, tt := range tests { 43 t.Run(tt.name, func(t *testing.T) { 44 imager := buildPackImager{} 45 require.Equal(t, tt.expect, imager.buildCommand(images, tt.flags)) 46 }) 47 } 48 }