mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-09 09:26:54 +00:00
59 lines
1.9 KiB
Go
59 lines
1.9 KiB
Go
package imagedataloader
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/google/go-containerregistry/pkg/v1/types"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
var (
|
|
image = "ghcr.io/kyverno/test-verify-image:signed"
|
|
ctx = context.Background()
|
|
)
|
|
|
|
func Test_ImageDataLoader(t *testing.T) {
|
|
idf, err := New(nil)
|
|
assert.NoError(t, err)
|
|
|
|
img, err := idf.FetchImageData(context.TODO(), image)
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, img.Image, image)
|
|
assert.Equal(t, img.Registry, "ghcr.io")
|
|
assert.Equal(t, img.Repository, "kyverno/test-verify-image")
|
|
assert.Equal(t, img.Tag, "signed")
|
|
assert.Equal(t, img.Digest, "sha256:b31bfb4d0213f254d361e0079deaaebefa4f82ba7aa76ef82e90b4935ad5b105")
|
|
assert.Equal(t, img.ResolvedImage, "ghcr.io/kyverno/test-verify-image:signed@sha256:b31bfb4d0213f254d361e0079deaaebefa4f82ba7aa76ef82e90b4935ad5b105")
|
|
|
|
img, err = idf.FetchImageData(context.TODO(), "nginx")
|
|
assert.NoError(t, err)
|
|
indexMediaType := img.ImageIndex.(map[string]interface{})["mediaType"].(string)
|
|
assert.Equal(t, indexMediaType, string(types.OCIImageIndex))
|
|
|
|
arch := img.ConfigData.Architecture
|
|
assert.True(t, len(arch) > 0)
|
|
|
|
manifestMediaType := img.Manifest.MediaType
|
|
assert.Equal(t, manifestMediaType, types.OCIManifestSchema1)
|
|
}
|
|
|
|
func Test_Referrers(t *testing.T) {
|
|
idf, err := New(nil)
|
|
assert.NoError(t, err)
|
|
|
|
img, err := idf.FetchImageData(context.TODO(), image)
|
|
assert.NoError(t, err)
|
|
|
|
refList, err := img.FetchRefererrs("application/vnd.cncf.notary.signature")
|
|
assert.NoError(t, err)
|
|
assert.Equal(t, len(refList), 2)
|
|
assert.Equal(t, refList[0].ArtifactType, "application/vnd.cncf.notary.signature")
|
|
assert.Equal(t, string(refList[0].MediaType), "application/vnd.oci.image.manifest.v1+json")
|
|
|
|
data, desc, err := img.FetchReferrerData(refList[0])
|
|
assert.NoError(t, err)
|
|
assert.True(t, len(data) > 0)
|
|
assert.Equal(t, string(desc.MediaType), "application/jose+json")
|
|
}
|