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 }