github.com/docker/app@v0.9.1-beta3.0.20210611140623-a48f773ab002/internal/packager/bundle_test.go (about)

     1  package packager
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/docker/app/types/metadata"
     7  	"gotest.tools/assert"
     8  )
     9  
    10  func TestMakeInvocationImage(t *testing.T) {
    11  	testcases := []struct {
    12  		name     string
    13  		meta     metadata.AppMetadata
    14  		tag      string
    15  		expected string
    16  		err      string
    17  	}{
    18  		{
    19  			name:     "simple-metadata",
    20  			meta:     metadata.AppMetadata{Name: "name", Version: "version"},
    21  			expected: "name:version-invoc",
    22  		},
    23  		{
    24  			name:     "tag-override",
    25  			meta:     metadata.AppMetadata{Name: "name", Version: "version"},
    26  			expected: "myimage:mytag-invoc",
    27  			tag:      "myimage:mytag",
    28  		},
    29  		{
    30  			name: "invalid-metadata",
    31  			meta: metadata.AppMetadata{Name: "WrongName&%*", Version: "version"},
    32  			err:  "invalid",
    33  		},
    34  	}
    35  	for _, c := range testcases {
    36  		t.Run(c.name, func(t *testing.T) {
    37  			ref, err := GetNamedTagged(c.tag)
    38  			assert.NilError(t, err)
    39  			actual, err := MakeInvocationImageName(c.meta, ref)
    40  			if c.err != "" {
    41  				assert.ErrorContains(t, err, c.err)
    42  				assert.Equal(t, actual, "", "On "+c.meta.Name)
    43  			} else {
    44  				assert.NilError(t, err)
    45  				assert.Equal(t, actual, c.expected)
    46  			}
    47  		})
    48  	}
    49  }