github.com/docker/cnab-to-oci@v0.3.0-beta4/converter/types_test.go (about)

     1  package converter
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/cnabio/cnab-go/bundle"
     7  	"gotest.tools/assert"
     8  )
     9  
    10  func TestPrepareForPush(t *testing.T) {
    11  	b := &bundle.Bundle{}
    12  	prepared, err := PrepareForPush(b)
    13  	assert.NilError(t, err)
    14  
    15  	// First try with OCI format and specific CNAB media type. Fallback should be set.
    16  	assert.Equal(t, prepared.ManifestDescriptor.MediaType, "application/vnd.oci.image.manifest.v1+json")
    17  	assert.Equal(t, prepared.ConfigBlobDescriptor.MediaType, "application/vnd.cnab.config.v1+json")
    18  	assert.Check(t, prepared.Fallback != nil)
    19  	// Try the first fallback, which set the media type to image config and still using OCI format
    20  	fallback := prepared.Fallback
    21  	assert.Equal(t, fallback.ManifestDescriptor.MediaType, "application/vnd.oci.image.manifest.v1+json")
    22  	assert.Equal(t, fallback.ConfigBlobDescriptor.MediaType, "application/vnd.oci.image.config.v1+json")
    23  	assert.Check(t, fallback.Fallback != nil)
    24  	// Last fallback uses Docker format
    25  	lastFallback := fallback.Fallback
    26  	assert.Equal(t, lastFallback.ManifestDescriptor.MediaType, "application/vnd.docker.distribution.manifest.v2+json")
    27  	assert.Equal(t, lastFallback.ConfigBlobDescriptor.MediaType, "application/vnd.docker.container.image.v1+json")
    28  }