...
1 package forwarder
2
3 import (
4 "fmt"
5 "testing"
6
7 "github.com/google/go-containerregistry/pkg/name"
8 "github.com/stretchr/testify/assert"
9 "github.com/stretchr/testify/require"
10 )
11
12 var (
13 digest = "sha256:deadb33fdeadb33fdeadb33fdeadb33fdeadb33fdeadb33fdeadb33fdeadb33f"
14 base = "us-east1-docker.pkg.dev"
15 projectID = "ret-edge-infragang0"
16 )
17
18 func TestParseRef(t *testing.T) {
19 tcs := map[string]struct {
20 repository string
21 image string
22 }{
23 "only registry and package as repository": {"warehouse", "cert-manager"},
24 "nested repository": {"warehouse", "dev/swim/prometheus-operator"},
25 }
26
27 for n, tc := range tcs {
28 t.Run(n, func(t *testing.T) {
29 ref, err := name.ParseReference(fmt.Sprintf(
30 "%s/%s/%s/%s@%s", base, projectID, tc.repository, tc.image, digest,
31 ))
32 require.NoError(t, err)
33 t.Log(ref)
34
35 registry, repository, image := parseRef(ref)
36
37 assert.Equal(t, base, registry)
38 assert.Equal(t, tc.image, image)
39 assert.Equal(t, tc.repository, repository)
40 })
41 }
42 }
43
View as plain text