@@ -28,6 +28,7 @@ import (
2828
2929 oci "github.com/opencontainers/image-spec/specs-go/v1"
3030 "github.com/stretchr/testify/assert"
31+ "github.com/stretchr/testify/require"
3132)
3233
3334func TestPackageContainer (t * testing.T ) {
@@ -75,8 +76,8 @@ func TestPackageContainer(t *testing.T) {
7576 untaggedManifestDigest := "sha256:4305f5f5572b9a426b88909b036e52ee3cf3d7b9c1b01fac840e90747f56623d"
7677 untaggedManifestContent := `{"schemaVersion":2,"mediaType":"` + oci .MediaTypeImageManifest + `","config":{"mediaType":"application/vnd.docker.container.image.v1+json","digest":"sha256:4607e093bec406eaadb6f3a340f63400c9d3a7038680744c406903766b938f0d","size":1069},"layers":[{"mediaType":"application/vnd.docker.image.rootfs.diff.tar.gzip","digest":"sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4","size":32}]}`
7778
78- indexManifestDigest := "sha256:bab112d6efb9e7f221995caaaa880352feb5bd8b1faf52fae8d12c113aa123ec "
79- indexManifestContent := `{"schemaVersion":2,"mediaType":"` + oci .MediaTypeImageIndex + `","manifests":[{"mediaType":"application/vnd.docker.distribution.manifest.v2+json","digest":"` + manifestDigest + `","platform":{"os":"linux","architecture":"arm","variant":"v7"}},{"mediaType":"` + oci .MediaTypeImageManifest + `","digest":"` + untaggedManifestDigest + `","platform":{"os":"linux","architecture":"arm64","variant":"v8"}}]}`
79+ indexManifestDigest := "sha256:2c6b5afb967d5de02795ee1d177c3746d005df4b4c2b829385b0d186b3414b6b "
80+ indexManifestContent := `{"schemaVersion":2,"mediaType":"` + oci .MediaTypeImageIndex + `","is_tagged":true," manifests":[{"mediaType":"application/vnd.docker.distribution.manifest.v2+json","digest":"` + manifestDigest + `","platform":{"os":"linux","architecture":"arm","variant":"v7"}},{"mediaType":"` + oci .MediaTypeImageManifest + `","digest":"` + untaggedManifestDigest + `","platform":{"os":"linux","architecture":"arm64","variant":"v8"}}]}`
8081
8182 anonymousToken := ""
8283 userToken := ""
@@ -599,6 +600,17 @@ func TestPackageContainer(t *testing.T) {
599600 assert .True (t , pd .Files [0 ].File .IsLead )
600601 assert .Equal (t , oci .MediaTypeImageIndex , pd .Files [0 ].Properties .GetByName (container_module .PropertyMediaType ))
601602 assert .Equal (t , indexManifestDigest , pd .Files [0 ].Properties .GetByName (container_module .PropertyDigest ))
603+
604+ lastPackageVersionID := pv .ID
605+ t .Run ("UploadAgain" , func (t * testing.T ) {
606+ req := NewRequestWithBody (t , "PUT" , fmt .Sprintf ("%s/manifests/%s" , url , multiTag ), strings .NewReader (indexManifestContent )).
607+ AddTokenAuth (userToken ).
608+ SetHeader ("Content-Type" , oci .MediaTypeImageIndex )
609+ MakeRequest (t , req , http .StatusCreated )
610+ pv , err := packages_model .GetVersionByNameAndVersion (t .Context (), user .ID , packages_model .TypeContainer , image , multiTag )
611+ require .NoError (t , err )
612+ assert .NotEqual (t , lastPackageVersionID , pv .ID )
613+ })
602614 })
603615
604616 t .Run ("HeadBlob" , func (t * testing.T ) {
0 commit comments