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  }